Rumah >pangkalan data >tutorial mysql >Bagaimanakah saya memberikan dan membatalkan keistimewaan kepada pengguna MySQL?
Untuk menguruskan keistimewaan untuk pengguna MySQL, anda menggunakan arahan geran dan membatalkan. Inilah cara menggunakannya:
Memberi Keistimewaan:
Perintah geran digunakan untuk memberikan keistimewaan khusus kepada pengguna. Sintaks asas adalah:
<code class="sql">GRANT privilege_type ON database_name.table_name TO 'username'@'host';</code>
Sebagai contoh, untuk memberikan keistimewaan pilih pada jadual yang dinamakan employees
dalam pangkalan data company
kepada pengguna bernama john
yang boleh menyambung dari mana -mana hos:
<code class="sql">GRANT SELECT ON company.employees TO 'john'@'%';</code>
Membatalkan keistimewaan:
Perintah Revoke digunakan untuk menghapuskan keistimewaan tertentu dari pengguna. Sintaks asas adalah:
<code class="sql">REVOKE privilege_type ON database_name.table_name FROM 'username'@'host';</code>
Sebagai contoh, untuk membatalkan keistimewaan pilih dari john
di Jadual employees
:
<code class="sql">REVOKE SELECT ON company.employees FROM 'john'@'%';</code>
Ingat, selepas mengubah keistimewaan, ini adalah amalan yang baik untuk menyegarkan keistimewaan untuk memastikan mereka berkuatkuasa dengan segera:
<code class="sql">FLUSH PRIVILEGES;</code>
MySQL menawarkan pelbagai keistimewaan yang boleh diberikan atau dibatalkan untuk menguruskan akses pengguna. Beberapa keistimewaan yang paling biasa termasuk:
Di samping itu, terdapat keistimewaan pentadbiran seperti:
Apabila memberikan atau membatalkan keistimewaan ini, anda boleh menentukannya pada tahap yang berbeza: global (semua pangkalan data), pangkalan data, jadual, atau lajur.
Untuk menyemak keistimewaan semasa pengguna MySQL, anda boleh menggunakan pernyataan SHOW GRANTS
. Sintaks asas adalah:
<code class="sql">SHOW GRANTS FOR 'username'@'host';</code>
Sebagai contoh, untuk melihat keistimewaan untuk pengguna john
yang boleh menyambung dari mana -mana tuan rumah:
<code class="sql">SHOW GRANTS FOR 'john'@'%';</code>
Perintah ini akan menyenaraikan semua keistimewaan yang telah diberikan kepada john
. Jika anda ingin melihat keistimewaan untuk pengguna yang sedang dilog masuk, anda hanya boleh menggunakan:
<code class="sql">SHOW GRANTS FOR CURRENT_USER;</code>
Ini akan memaparkan keistimewaan untuk pengguna yang sedang melaksanakan arahan.
Mengubah keistimewaan untuk pengguna MySQL berganda pada masa yang sama tidak disokong secara langsung oleh satu arahan dalam MySQL. Walau bagaimanapun, anda boleh mencapai ini dengan skrip proses. Berikut adalah pendekatan asas menggunakan skrip SQL:
<code class="sql">GRANT SELECT ON company.employees TO 'john'@'%'; GRANT SELECT ON company.employees TO 'jane'@'%'; GRANT SELECT ON company.employees TO 'bob'@'%'; FLUSH PRIVILEGES;</code>
modify_privileges.sql
) dan kemudian laksanakannya menggunakan alat baris arahan MySQL:<code class="bash">mysql -u root -p </code>
Pendekatan ini membolehkan anda mengautomasikan proses mengubah keistimewaan untuk beberapa pengguna sekaligus. Anda dapat meningkatkan lagi skrip ini dengan menggunakan gelung jika anda berurusan dengan sejumlah besar pengguna, mungkin dengan mengintegrasikannya dengan bahasa pengaturcaraan seperti Python atau skrip shell.
Ingat, sentiasa pastikan anda mempunyai sandaran tetapan keistimewaan anda dan menguji skrip dalam persekitaran bukan pengeluaran sebelum memohonnya ke pangkalan data langsung anda.
Atas ialah kandungan terperinci Bagaimanakah saya memberikan dan membatalkan keistimewaan kepada pengguna MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!