User & Hak Akses MySQL
Dalam administrasi database MySQL, seorang administrator sering kali perlu memeriksa daftar pengguna, hak akses (privileges), serta konfigurasi keamanan. MySQL menyediakan beberapa perintah bawaan yang bisa digunakan untuk melakukan hal tersebut. Pada artikel kali ini kita akan membahas dua perintah penting, yaitu:
-
SELECT * FROM mysql.user;
-
SHOW GRANTS FOR 'username'@'host';
Mari kita bahas satu per satu.
1. Melihat Daftar User di MySQL dengan SELECT * FROM mysql.user;
Tabel mysql.user
merupakan tabel sistem bawaan MySQL yang menyimpan informasi mengenai semua pengguna yang terdaftar. Di dalam tabel ini tersimpan data penting seperti:
-
Nama pengguna (User)
-
Host asal login (Host)
-
Hak akses global (Privileges)
-
Informasi otentikasi (plugin, password, dll.)
Contoh perintah untuk melihat semua data pada tabel tersebut adalah:
SELECT * FROM mysql.user;
Namun, untuk kebutuhan administrasi dasar, biasanya kita hanya perlu menampilkan user dan host saja, misalnya:
SELECT user, host FROM mysql.user;
Perintah di atas akan menampilkan daftar username dan asal host yang diizinkan untuk terkoneksi ke server MySQL.
Contoh hasilnya:
user | host |
---|---|
root | localhost |
admin | % |
user1 | localhost |
Keterangan:
-
root@localhost
→ hanya bisa login dari mesin lokal. -
admin@%
→ bisa login dari host mana saja (wildcard%
). -
user1@localhost
→ hanya bisa login dari localhost.
2. Melihat Hak Akses User dengan SHOW GRANTS
Setelah mengetahui siapa saja user yang ada di server, langkah berikutnya adalah mengecek hak akses (grants) yang dimiliki oleh masing-masing user.
Perintah yang digunakan adalah:
SHOW GRANTS FOR 'user1'@'localhost';
Perintah ini akan menampilkan hak akses yang diberikan pada user user1
yang hanya bisa login dari localhost
.
Contoh hasilnya:
GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'user1'@'localhost';
GRANT USAGE ON *.* TO 'user1'@'localhost';
Penjelasan:
-
GRANT SELECT, INSERT, UPDATE ON mydb.*
→ useruser1
diizinkan untuk membaca, menambahkan, dan memperbarui data pada semua tabel di databasemydb
. -
GRANT USAGE
→ artinya user tersebut sudah terdaftar tapi tidak memiliki hak istimewa tambahan di luar yang diberikan.
Kesimpulan
-
SELECT user, host FROM mysql.user;
→ digunakan untuk mengecek daftar user MySQL dan host asal mereka. -
SHOW GRANTS FOR 'username'@'host';
→ digunakan untuk melihat detail hak akses yang dimiliki oleh user tertentu.
Dengan memahami kedua perintah ini, seorang administrator database dapat lebih mudah mengelola keamanan dan akses pengguna pada sistem MySQL.
No comments:
Post a Comment