Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memberi Semua Keistimewaan kepada Pangkalan Data MySQL Kecuali untuk Satu Jadual?

Bagaimana untuk Memberi Semua Keistimewaan kepada Pangkalan Data MySQL Kecuali untuk Satu Jadual?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-03 19:50:03877semak imbas

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

Cara Memberi Semua Keistimewaan kepada Pangkalan Data MySQL Kecuali Satu Jadual

Soalan:

Pengguna mencari penyelesaian untuk membenarkan pengguna mempunyai akses lengkap kepada pangkalan data kecuali untuk jadual tertentu, di mana mereka sepatutnya hanya mempunyai keistimewaan PILIH.

Jawapan:

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.

Penyelesaian:

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:

  1. Batalkan semua keistimewaan untuk pengguna pada pangkalan data:

    <code class="sql">REVOKE ALL PRIVILEGES ON db.* FROM user@localhost;  </code>
  2. Laksanakan pertanyaan SELECT CONCAT untuk menjana penyata GRANT.
  3. Tampal penyataan yang dijana ke dalam klien MySQL anda dan jalankannya.

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!

Kenyataan:
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