Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memberi Semua Keistimewaan kepada Pangkalan Data MySQL Kecuali untuk Satu Jadual?
Pengguna mencari penyelesaian untuk membenarkan pengguna mempunyai akses lengkap kepada pangkalan data kecuali untuk jadual tertentu, di mana mereka sepatutnya hanya mempunyai keistimewaan PILIH.
Walaupun percubaan untuk memberikan semua keistimewaan pada pangkalan data dan kemudian secara khusus berikan hanya keistimewaan SELECT pada jadual yang diingini, atau untuk membatalkan memasukkan, mengemas kini dan memadamkan keistimewaan, ralat telah berterusan.
Penjanaan Penyata Geran Dinamik:
Untuk memudahkan proses, anda boleh menggunakan pertanyaan SELECT CONCAT berikut untuk menjana pernyataan GRANT yang diperlukan:
<code class="sql">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";</code>
Langkah:
Batalkan semua keistimewaan untuk pengguna pada pangkalan data:
<code class="sql">REVOKE ALL PRIVILEGES ON db.* FROM user@localhost; </code>
Contoh:
REVOKE ALL PRIVILEGES ON my_db.* FROM my_user@localhost; SELECT CONCAT("GRANT UPDATE ON my_db.", table_name, " TO my_user@localhost;") FROM information_schema.TABLES WHERE table_schema = "my_db" AND table_name <> "special_table";
Atas ialah kandungan terperinci Bagaimana untuk Memberi Semua Keistimewaan kepada Pangkalan Data MySQL Kecuali untuk Satu Jadual?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!