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:
Batalkan Semua Keistimewaan:
REVOKE ALL PRIVILEGES ON db.* FROM user@localhost;
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";
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!