🧚 Dengar! Beekeeper Studio adalah GUI MySQL yang cepat, modern, dan open source Unduh
8 September 2024 Oleh Matthew Rathbone

Privilege MySQL menentukan tindakan apa saja yang dapat dilakukan pengguna di dalam database. SHOW GRANTS memungkinkan Anda meninjau privilege ini untuk memastikan pengguna memiliki akses yang tepat. Anda dapat:

  • Melihat semua privilege milik pengguna tertentu.
  • Mengaudit pengguna untuk keperluan keamanan.
  • Mengubah privilege berdasarkan grants yang berlaku saat ini.

Sebelum Anda lanjut membaca, saya ingin memperkenalkan database manager MySQL yang modern dan cepat buatan kami, Beekeeper Studio. Editor SQL-nya menyediakan autocomplete saat Anda mengetik dan menyimpan riwayat setiap query yang pernah Anda jalankan, sangat berguna saat mengaudit hak akses. Gratis digunakan untuk MySQL, unduh di sini.

Sintaks Dasar SHOW GRANTS

SHOW GRANTS FOR 'username'@'host';
  • ‘username’ mengacu pada pengguna MySQL.
  • ‘host’ mengacu pada hostname atau alamat IP tempat pengguna terhubung.

Melihat Grants untuk Pengguna Tertentu

Misalkan Anda memiliki pengguna ‘john’ yang terhubung dari localhost. Untuk melihat izinnya, gunakan query berikut:

SHOW GRANTS FOR 'john'@'localhost';

Output yang Diharapkan:

+---------------------------------------------------------+
| Grants for john@localhost                               |
+---------------------------------------------------------+
| GRANT USAGE ON *.* TO `john`@`localhost`                |
| GRANT SELECT, INSERT ON `mydb`.* TO `john`@`localhost`  |
+---------------------------------------------------------+

Pada output ini:

  • GRANT USAGE menunjukkan bahwa pengguna tidak memiliki privilege global.
  • GRANT SELECT, INSERT ON mydb.* menunjukkan bahwa john memiliki izin SELECT dan INSERT pada semua tabel di database ‘mydb’.

Menampilkan Grants untuk Semua Pengguna (MySQL 5.7 ke Atas)

Di MySQL, tidak ada satu perintah pun yang bisa langsung menampilkan grants untuk semua pengguna. Namun, Anda dapat membuat query yang diperlukan dari tabel mysql.user, lalu menjalankan SHOW GRANTS untuk setiap pengguna:

SELECT CONCAT('SHOW GRANTS FOR \'', user, '\'@\'', host, '\';') 
FROM mysql.user;

Query ini menghasilkan daftar pernyataan SHOW GRANTS untuk setiap pengguna di sistem. Berikut contoh output-nya:

+--------------------------------------------------+
| CONCAT('SHOW GRANTS FOR \'', user, '\'@\'', host |
+--------------------------------------------------+
| SHOW GRANTS FOR 'root'@'localhost';              |
| SHOW GRANTS FOR 'john'@'localhost';              |
| SHOW GRANTS FOR 'admin'@'192.168.1.10';          |
+--------------------------------------------------+

Setelah itu, Anda dapat menjalankan query SHOW GRANTS untuk melihat privilege pengguna tertentu.

Menampilkan Grants untuk Pengguna Saat Ini

Untuk menampilkan grants bagi pengguna yang sedang terhubung ke database, Anda dapat menggunakan fungsi CURRENT_USER():

SHOW GRANTS FOR CURRENT_USER();

Output yang Diharapkan:

+---------------------------------------------------------+
| Grants for current user                                 |
+---------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost`       |
+---------------------------------------------------------+

Perintah ini sangat berguna bagi pengguna yang tidak yakin dengan izin yang mereka miliki.

Memahami Output-nya

  • GRANT USAGE: Menunjukkan bahwa pengguna tidak memiliki privilege global, tetapi mungkin memiliki privilege tertentu pada database.
  • ALL PRIVILEGES: Memberikan semua privilege untuk sebuah database atau secara global, kecuali GRANT OPTION.
  • GRANT OPTION: Memungkinkan pengguna memberikan privilege kepada orang lain.
    Grants khusus database: Izin seperti SELECT, INSERT, UPDATE, dan DELETE dapat diberikan untuk database atau tabel tertentu.

Memahami GRANTS di MySQL

MySQL menyediakan pernyataan GRANT yang memungkinkan administrator memberikan privilege kepada pengguna.

Ada juga kebalikannya, yaitu pernyataan REVOKE, untuk mencabut privilege.

Namun, sebelum mengubah izin, kita perlu mengetahui izin apa saja yang sedang berlaku – dan di sinilah perintah SHOW GRANTS berperan.

Perintah SHOW GRANTS menampilkan pernyataan GRANT yang harus dijalankan untuk menduplikasi privilege seorang pengguna.

Perintah ini kompatibel dengan database engine MySQL dan MariaDB.

Kesimpulan

Singkatnya, perintah SHOW GRANTS di MySQL digunakan untuk menampilkan privilege pengguna. Perintah ini adalah alat penting bagi administrator database untuk mengaudit dan mengelola izin pengguna.

Artikel lain yang mungkin Anda sukai:

Beekeeper Studio Adalah GUI MySQL Gratis & Open Source

Belakangan ini saya memakai Beekeeper Studio untuk pekerjaan MySQL, dan aplikasi ini cepat menjadi salah satu tool database favorit saya. Antarmukanya bersih, modern, dan bebas gangguan, sehingga mudah fokus pada query tanpa kesemrawutan seperti di beberapa tool lain. - Surendra Singh

Beekeeper Studio adalah client MySQL yang cepat, intuitif, dan mudah digunakan. Aplikasi ini juga mendukung banyak database lain, dan berjalan mulus di Windows, Mac, dan Linux.

Versi Linux Beekeeper punya fitur 100% lengkap, tanpa potong kompas, tanpa kompromi fitur.

Apa Kata Pengguna MySQL tentang Beekeeper Studio

Beekeeper Beekeeper Masih Pemula

Saya memilih program ini setelah bertahun-tahun memakai phpMyAdmin—rasanya seperti masuk ke dunia dengan kualitas yang lebih tinggi; di sini saya benar-benar merasa penggunanya sungguh diperhatikan. Konsepnya, implementasinya, pengalaman praktisnya—saya sungguh berterima kasih kepada Matthew untuk semuanya.

Alex M

Tool yang luar biasa, IDE paling praktis yang pernah saya temukan sejauh ini untuk administrasi database Postgres dan MySql - langsung jalan, tanpa ribet :-)

Siap Meningkatkan Alur Kerja MySQL Anda?

download Unduh Gratis