Bagaimana Memberi Semua Keistimewaan dalam Pangkalan Data MySQL Kecuali untuk Jadual Tertentu?

DDD
Lepaskan: 2024-11-04 05:20:29
asal
1010 orang telah melayarinya

How to Grant All Privileges in a MySQL Database Except for a Specific Table?

Memberi Keistimewaan kepada Pangkalan Data Kecuali Jadual Khusus dalam MySQL

Banyak pangkalan data selalunya memerlukan pemberian tahap keistimewaan yang berbeza kepada pelbagai pengguna. Sesetengah pengguna mungkin memerlukan kawalan penuh ke atas pangkalan data, sementara yang lain mungkin hanya memerlukan kebenaran terhad untuk jadual tertentu. Dalam MySQL, memberikan keistimewaan komprehensif kepada pengguna boleh menjadi mudah; namun, memperuntukkan semua kebenaran kecuali untuk jadual tertentu boleh mencabar.

Percubaan Awal Tidak Berjaya

Seperti yang dinyatakan dalam pertanyaan pengguna, cuba memberikan semua keistimewaan menggunakan "db_name .*" dan kemudian secara terpilih memberikan keistimewaan SELECT pada jadual yang dikehendaki tidak mengatasi keistimewaan "semua". Selain itu, membatalkan memasukkan, mengemas kini dan memadamkan keistimewaan selepas memberikan semua keistimewaan mengakibatkan ralat disebabkan ketiadaan peraturan pemberian untuk jadual tertentu.

Pemberian Keistimewaan Individu

Walaupun memberikan semua keistimewaan secara individu kepada setiap jadual dalam pangkalan data kecuali jadual baca sahaja mungkin kelihatan membosankan, ia merupakan kaedah yang paling tepat dan boleh dipercayai pada masa ini. Pendekatan ini memastikan bahawa pengguna tidak mempunyai hak kemas kini untuk jadual tertentu.

Cara Lebih Mudah?

Pengguna menyatakan harapan untuk penyelesaian yang lebih mudah, dan sememangnya terdapat teknik yang menggabungkan kemudahan untuk memberikan semua keistimewaan dengan mengecualikan jadual tertentu:

  1. Batalkan Semua Keistimewaan:

    REVOKE ALL PRIVILEGES ON db.* FROM user@localhost;
    Salin selepas log masuk
  2. Gunakan Information_schema untuk Membuat Penyata GERAN:

    SELECT CONCAT("GRANT UPDATE ON db.", table_name, " TO user@localhost;")
    FROM information_schema.TABLES
    WHERE table_schema = "YourDB" AND table_name <> "table_to_skip";
    Salin selepas log masuk
  3. Salin dan Laksanakan Keputusan
    Salin hasil pertanyaan dan laksanakan mereka dalam klien MySQL untuk memberikan keistimewaan kemas kini kepada semua jadual kecuali yang ditentukan.

Pendekatan ini menyediakan alternatif yang lebih cepat dan dinamik untuk memberikan keistimewaan secara manual kepada setiap jadual secara individu.

Atas ialah kandungan terperinci Bagaimana Memberi Semua Keistimewaan dalam Pangkalan Data MySQL Kecuali untuk Jadual Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan