Keizinan Mysql: 1. Keizinan global, terpakai untuk semua pangkalan data dalam pelayan, disimpan dalam "mysql.user"; 2. Kebenaran pangkalan data, terpakai untuk semua sasaran dalam pangkalan data, disimpan dalam "mysql. db" dan "mysql.host"; 3. Keizinan jadual, terpakai untuk semua lajur dalam jadual 4. Keizinan lajur, dsb.
Persekitaran pengendalian tutorial ini: sistem Windows 10, versi mysql8.0.22, komputer Dell G3.
Klasifikasi khusus kebenaran
1 Peringkat global
Kebenaran global dikenakan kepada a pelayan yang diberikan semua pangkalan data dalam . Kebenaran ini disimpan dalam jadual mysql.user. BERIKAN SEMUA PADA *.* dan BATALKAN SEMUA PADA *.* hanya berikan dan batalkan kebenaran global.
2. Tahap pangkalan data
Kebenaran pangkalan data digunakan untuk semua sasaran dalam pangkalan data yang diberikan. Kebenaran ini disimpan dalam jadual mysql.db dan mysql.host. BERIKAN SEMUA PADA db_name.* dan BATALKAN SEMUA PADA db_name.* hanya berikan dan batalkan kebenaran pangkalan data.
3. Tahap jadual
Kebenaran jadual digunakan pada semua lajur dalam jadual tertentu. Kebenaran ini disimpan dalam jadual mysql.tables_priv. BERIKAN SEMUA PADA db_name.tbl_name dan BATALKAN SEMUA PADA db_name.tbl_name sahaja berikan dan batalkan kebenaran jadual.
4. Tahap lajur
Kebenaran lajur digunakan pada satu lajur dalam jadual tertentu. Kebenaran ini disimpan dalam jadual mysql.columns_priv. Apabila menggunakan REVOKE, anda mesti menentukan lajur yang sama seperti lajur yang dibenarkan.
5. Tahap subprogram
BUAT RUTIN, UBAH RUTIN, LAKSANAKAN dan BERI kebenaran dikenakan pada subprogram yang disimpan. Kebenaran ini boleh diberikan pada peringkat global dan peringkat pangkalan data. Selain itu, sebagai tambahan kepada CREATE ROUTINE, kebenaran ini boleh diberikan pada peringkat subrutin dan disimpan dalam jadual mysql.procs_priv
Pengetahuan tambahan:
1 , Ujian peringkat global
Buat ujian akaun ujian dan berikan kebenaran peringkat global. Seperti yang ditunjukkan di bawah:
mysql> set global validate_password_policy=0; mysql> grant select,insert on *.* to test@'%' identified by 'test'; mysql> flush privileges;
Gunakan dua kaedah berikut untuk menanyakan kebenaran yang diberikan untuk menguji. Seperti yang ditunjukkan di bawah:
mysql> show grants for test; mysql> select * from mysql.user where user='test'G;
2. Ujian peringkat pangkalan data
Buat ujian akaun ujian dan berikan kebenaran peringkat pangkalan data. Seperti yang ditunjukkan di bawah:
mysql> drop user test; mysql> grant select,insert,update,delete on jpcpdb.* to test@'%' identified by 'test@123'; mysql> select * from mysql.user where user='test'G; --可以看到无任何授权。 mysql> show grants for test; mysql> select * from mysql.db where user='test'G;
3 Ujian tahap jadual
Buat ujian akaun ujian dan berikan tahap keizinan jadual. Seperti yang ditunjukkan di bawah:
mysql> drop user test; mysql> flush privileges; mysql> grant all on jpcpdb.user to test@'%' identified by 'test@123'; mysql> show grants for test; mysql> select * from mysql.tables_privG;
4. Ujian tahap lajur
Buat ujian akaun ujian dan berikan kebenaran peringkat lajur. Seperti yang ditunjukkan di bawah:
mysql> drop user test; mysql> flush privileges; mysql> grant select (id, name) on jpcpdb.user to test@'%' identified by 'test@123'; mysql> flush privileges; mysql> select * from mysql.columns_priv; mysql> show grants for test;
5. Ujian peringkat subprogram
Buat ujian akaun ujian dan berikan kebenaran peringkat subprogram. Seperti yang ditunjukkan di bawah:
mysql> DROP PROCEDURE IF EXISTS PRC_TEST; mysql> DELIMITER // mysql> CREATE PROCEDURE PRC_TEST() -> BEGIN -> SELECT * FROM user; -> END // mysql> DELIMITER ; mysql> grant execute on procedure jpcpdb.PRC_TEST to test@'%' identified by 'test@123'; mysql> flush privileges; mysql> show grants for test;
mysql> pilih * dari mysql.procs_priv di mana User='test';
Ringkasan
Jika anda perlu melihat pengguna diberikan Untuk kebenaran, anda perlu melihat kebenaran yang diberikan daripada lima peringkat ini. Semak kebenaran yang diberikan pada setiap peringkat satu demi satu dari atas ke bawah atau dari kecil ke atas.
Pangkalan data ialah sistem pemprosesan data umum untuk unit atau medan aplikasi Ia menyimpan koleksi data yang berkaitan milik syarikat dan jabatan perniagaan, kumpulan dan individu. Data dalam pangkalan data ditubuhkan dari perspektif global dan disusun, diterangkan dan disimpan mengikut model data tertentu. Strukturnya adalah berdasarkan sambungan semula jadi antara data, yang boleh menyediakan semua laluan akses yang diperlukan, dan data tidak lagi disasarkan pada aplikasi tertentu, tetapi berorientasikan kepada keseluruhan organisasi dan mempunyai ciri struktur keseluruhan.
Pembelajaran yang disyorkan: tutorial video mysql
Atas ialah kandungan terperinci Apakah kebenaran yang ada dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!