Mysql pilih pengguna dan hak istimewa

MySQL memiliki sistem akses database yang canggih. Pengguna basis data dapat memiliki akses ke seluruh basis data, tabel terpisah, atau ke kolom tabel terpisah. Selain itu, ada batasan untuk tindakan yang dapat dilakukan pengguna dengan rekaman

Server MySQL menggunakan beberapa tabel dalam database khusus untuk mengatur struktur akses database yang begitu rumit. Kebijakan akses didasarkan pada nilai yang tersedia dalam tabel ini

Basis data yang digunakan server MySQL untuk menyimpan data internal tentang pengguna disebut mysql secara default. Ada tabel untuk menyimpan informasi tentang akun pengguna di database ini

  • pengguna berisi daftar semua pengguna server MySQL dan izin mereka untuk mengakses database;
  • db berisi daftar database dengan daftar pengguna database yang cocok dan hak istimewa mereka untuk menjalankan operasi;
  • tables_priv berisi daftar tabel database (tampilan) yang dapat diakses pengguna;
  • kolom_priv berisi daftar kolom dari tabel basis data (tampilan) yang dapat diakses pengguna;
  • procs_priv berisi daftar prosedur database (fungsi) yang dapat diakses pengguna

Untuk mendapatkan daftar hak pengguna terkait akses data, kueri berikut dapat dijalankan

  • daftar hak istimewa global
SELECT mu.host `Host`, mu.user `User`, REPLACE(RTRIM(CONCAT( IF(mu.Select_priv = 'Y', 'Select ', ''), IF(mu.Insert_priv = 'Y', 'Insert ', ''), IF(mu.Update_priv = 'Y', 'Update ', ''), IF(mu.Delete_priv = 'Y', 'Delete ', ''), IF(mu.Create_priv = 'Y', 'Create ', ''), IF(mu.Drop_priv = 'Y', 'Drop ', ''), IF(mu.Reload_priv = 'Y', 'Reload ', ''), IF(mu.Shutdown_priv = 'Y', 'Shutdown ', ''), IF(mu.Process_priv = 'Y', 'Process ', ''), IF(mu.File_priv = 'Y', 'File ', ''), IF(mu.Grant_priv = 'Y', 'Grant ', ''), IF(mu.References_priv = 'Y', 'References ', ''), IF(mu.Index_priv = 'Y', 'Index ', ''), IF(mu.Alter_priv = 'Y', 'Alter ', ''), IF(mu.Show_db_priv = 'Y', 'Show_db ', ''), IF(mu.Super_priv = 'Y', 'Super ', ''), IF(mu.Create_tmp_table_priv = 'Y', 'Create_tmp_table ', ''), IF(mu.Lock_tables_priv = 'Y', 'Lock_tables ', ''), IF(mu.Execute_priv = 'Y', 'Execute ', ''), IF(mu.Repl_slave_priv = 'Y', 'Repl_slave ', ''), IF(mu.Repl_client_priv = 'Y', 'Repl_client ', ''), IF(mu.Create_view_priv = 'Y', 'Create_view ', ''), IF(mu.Show_view_priv = 'Y', 'Show_view ', ''), IF(mu.Create_routine_priv = 'Y', 'Create_routine ', ''), IF(mu.Alter_routine_priv = 'Y', 'Alter_routine ', ''), IF(mu.Create_user_priv = 'Y', 'Create_user ', ''), IF(mu.Event_priv = 'Y', 'Event ', ''), IF(mu.Trigger_priv = 'Y', 'Trigger ', '') )), ' ', ', ') AS `Privileges` FROM mysql.user mu ORDER BY mu.Host, mu.User
  • daftar hak istimewa untuk database
SELECT md.host `Host`, md.user `User`, md.db `Database`, REPLACE(RTRIM(CONCAT( IF(md.Select_priv = 'Y', 'Select ', ''), IF(md.Insert_priv = 'Y', 'Insert ', ''), IF(md.Update_priv = 'Y', 'Update ', ''), IF(md.Delete_priv = 'Y', 'Delete ', ''), IF(md.Create_priv = 'Y', 'Create ', ''), IF(md.Drop_priv = 'Y', 'Drop ', ''), IF(md.Grant_priv = 'Y', 'Grant ', ''), IF(md.References_priv = 'Y', 'References ', ''), IF(md.Index_priv = 'Y', 'Index ', ''), IF(md.Alter_priv = 'Y', 'Alter ', ''), IF(md.Create_tmp_table_priv = 'Y', 'Create_tmp_table ', ''), IF(md.Lock_tables_priv = 'Y', 'Lock_tables ', ''), IF(md.Create_view_priv = 'Y', 'Create_view ', ''), IF(md.Show_view_priv = 'Y', 'Show_view ', ''), IF(md.Create_routine_priv = 'Y', 'Create_routine ', ''), IF(md.Alter_routine_priv = 'Y', 'Alter_routine ', ''), IF(md.Execute_priv = 'Y', 'Execute ', ''), IF(md.Event_priv = 'Y', 'Event ', ''), IF(md.Trigger_priv = 'Y', 'Trigger ', '') )), ' ', ', ') AS `Privileges` FROM mysql.db md ORDER BY md.Host, md.User, md.Db_
  • daftar hak istimewa untuk tabel
SELECT mt.host `Host`, mt.user `User`, CONCAT(mt.Db, '.', mt.Table_name) `Tables`, REPLACE(mt.Table_priv, ',', ', ') AS `Privileges` FROM mysql.tables_priv mt WHERE mt.Table_name IN (SELECT DISTINCT t.table_name `tables` FROM information_schema.tables AS t WHERE t.table_type IN ('BASE TABLE', 'SYSTEM VIEW', 'TEMPORARY', '') OR t.table_type <> 'VIEW' AND t.create_options IS NOT NULL ) ORDER BY mt.Host, mt.User, mt.Db, mt.Table_name;
  • daftar hak istimewa untuk dilihat
SELECT mv.host `Host`, mv.user `User`, CONCAT(mv.Db, '.', mv.Table_name) `Views`, REPLACE(mv.Table_priv, ',', ', ') AS `Privileges` FROM mysql.tables_priv mv WHERE mv.Table_name IN (SELECT DISTINCT v.table_name `views` FROM information_schema.views AS v ) ORDER BY mv.Host, mv.User, mv.Db, mv.Table_name;
  • daftar hak istimewa untuk kolom tabel
SELECT mtc.host `Host`, mtc.user `User`, CONCAT(mtc.Db, '.', mtc.Table_name, '.', mtc.Column_name) `Tables Columns`, REPLACE(mtc.Column_priv, ',', ', ') AS `Privileges` FROM mysql.columns_priv mtc WHERE mtc.Table_name IN (SELECT DISTINCT t.table_name `tables` FROM information_schema.tables AS t WHERE t.table_type IN ('BASE TABLE', 'SYSTEM VIEW', 'TEMPORARY', '') OR t.table_type <> 'VIEW' AND t.create_options IS NOT NULL ) ORDER BY mtc.Host, mtc.User, mtc.Db, mtc.Table_name, mtc.Column_name;_
  • daftar hak istimewa untuk kolom tampilan
SELECT mvc.host `Host`, mvc.user `User`, CONCAT(mvc.Db, '.', mvc.Table_name, '.', mvc.Column_name) `Views Columns`, REPLACE(mvc.Column_priv, ',', ', ') AS `Privileges` FROM mysql.columns_priv mvc WHERE mvc.Table_name IN (SELECT DISTINCT v.table_name `views` FROM information_schema.views AS v ) ORDER BY mvc.Host, mvc.User, mvc.Db, mvc.Table_name, mvc.Column_name;
  • daftar hak istimewa untuk prosedur
SELECT mp.host `Host`, mp.user `User`, CONCAT(mp.Db, '.', mp.Routine_name) `Procedures`, REPLACE(mp.Proc_priv, ',', ', ') AS `Privileges` FROM mysql.procs_priv mp WHERE mp.Routine_type = 'PROCEDURE' ORDER BY mp.Host, mp.User, mp.Db, mp.Routine_name;_
  • daftar hak istimewa untuk fungsi
SELECT mf.host `Host`, mf.user `User`, CONCAT(mf.Db, '.', mf.Routine_name) `Procedures`, REPLACE(mf.Proc_priv, ',', ', ') AS `Privileges` FROM mysql.procs_priv mf WHERE mf.Routine_type = 'FUNCTION' ORDER BY mf.Host, mf.User, mf.Db, mf.Routine_name;

Anda mungkin perlu membuat laporan yang layak dicetak dengan data ini dan memberikannya sebagai laporan, misalnya, atas permintaan pelanggan atau otoritas. Untuk tujuan ini, Anda dapat menggunakan alat GUI MySQL khusus yang mencakup perancang laporan data

Jika Anda memiliki kueri siap pakai, Anda dapat memanfaatkan wizard yang mudah digunakan dan membuat laporan menggunakan template yang telah ditentukan sebelumnya dan data yang dikelompokkan, misalnya oleh host, dalam beberapa menit

Menu Laporan Data Baru

Panduan Laporan Data

Kueri Kustom Laporan Data

Kueri Pemuatan Laporan Data

Grup Laporan Data berdasarkan Host

Judul Laporan Data

Pratinjau Laporan Data

Seperti yang dapat Anda lihat pada tangkapan layar ini, kami telah membuat laporan menggunakan wizard dbForge Studio tanpa harus repot mendesain laporan itu sendiri

Kesimpulan

Dalam artikel tersebut, kami telah menjelaskan dengan skrip tertentu cara mendapatkan daftar hak pengguna terkait akses data

Bagaimana cara MEMILIH pengguna di MySQL?

Untuk menampilkan pengguna di database MySQL, pertama masuk ke server MySQL Anda sebagai pengguna administratif menggunakan klien baris perintah mysql, lalu jalankan kueri MySQL ini. mysql> pilih * dari mysql. pengguna;

Bagaimana cara memeriksa hak istimewa file di MySQL?

Pedoman Keamanan Umum .
Coba mysql -u root. Jika Anda berhasil terhubung ke server tanpa diminta kata sandi, Anda memiliki masalah. .
Gunakan perintah SHOW GRANTS dan periksa untuk melihat siapa yang memiliki akses ke apa. Hapus hak istimewa yang tidak diperlukan menggunakan perintah REVOKE

Bagaimana cara melihat semua hibah di MySQL?

Jawab. Di MySQL, Anda dapat menggunakan perintah SHOW GRANTS untuk menampilkan semua informasi hibah untuk pengguna. Ini akan menampilkan hak istimewa yang diberikan kepada pengguna menggunakan perintah GRANT.

Bagaimana cara memeriksa pengguna dan kata sandi di MySQL?

Jadi misalnya, untuk menampilkan nama pengguna, kata sandi, dan host pengguna MySQL, kami akan memodifikasi kueri sql agar sesuai dengan itu. mysql> pilih pengguna, kata sandi, host dari mysql. pengguna ; .

Postingan terbaru

LIHAT SEMUA