Kadang kita ingin melihat siapa saja yang memiliki hak akses super administrator, atau bisa jadi baru saja terjadi bencana seperti pembobolan data? dan kemudian kita ingin melihat atau meneliti siapa saja yang memiliki hak akses di MySQL server.
Jika Anda melihat panduan kami tentang dasar manajemen MySQL di baris perintah, terdapat perintah untuk menampilkan database dan tabel, tetapi tidak ada perintah MySQL untuk “menampilkan pengguna”.
Tutorial ini menjelaskan cara membuat daftar semua akun pengguna di server database MySQL melalui baris perintah.
Sebelum mulai
Sebelum Anda mulai dengan tutorial ini, kami mengasumsikan bahwa Anda sudah menginstal MySQL server atau MariaDB di sistem Anda. Jika belum, Anda dapat menginstalnya dengan mudah dengan mengikuti salah satu tutorial di bawah ini:
- Instal MySQL pada CentOS 7, Ubuntu 18.04, Debian 9.
- Instal MariaDB pada CentOS 7, Ubuntu 18.04, Debian 9
Semua perintah akan dieksekusi di dalam shell MySQL sebagai pengguna root.
Untuk mengakses shell MySQL ketik perintah berikut dan masukkan kata sandi pengguna root MySQL Anda ketika diminta:
mysql -u root -p
Jika Anda belum menetapkan kata sandi untuk pengguna root MySQL, Anda dapat menghilangkan flag-p
.
Jika lupa kata sandi root MySQL, Anda dapat meresetnya dengan mengikuti instruksi ini.
Tampilkan User MySQL
MySQL menyimpan informasi tentang pengguna, dalam tabel bernama user
di database mysql
. Untuk mendapatkan daftar semua akun pengguna MySQL kita dapat menggunakan pernyataan SELECT
untuk mengambil semua baris dari tabel mysql.users
:
SELECT User, Host FROM mysql.user;
Outputnya akan terlihat seperti di bawah ini (tabel merupakan contoh data):
+------------------+-----------+ | user | host | +------------------+-----------+ | root | localhost | | admn | % | | yuli | % | | babba | 10.10.0.3 | | babba | 10.10.0.5 | | chikazush | localhost | | lala | localhost | | badu | localhost | +------------------+-----------+ 8 rows in set (0.00 sec)
Perintah di atas hanya menampilkan dua kolom dari tabel mysql.user
(User
dan Host
), Tabel ini berisi lebih dari 40 kolom seperti Password
, Select_priv
, Update_priv
… dll.
Akun pengguna di MySQL terdiri dari nama pengguna dan host name. Anda dapat menggunakan pernyataan desc mysql.user;
untuk menampilkan informasi tentang masing-masing kolom tabel. Setelah Anda tahu nama kolom, jalankan kueri terhadap data yang dipilih.
Misalnya untuk mendapatkan daftar semua akun pengguna MySQL termasuk informasi tentang kata sandi dan apakah kata sandi itu aktif atau expired (kedaluarsa), Anda dapat menggunakan kueri berikut:
SELECT User, Host, Password, password_expired FROM mysql.user;
+----------------+-----------+-------------------------------------------+------------------+ | User | Host | Password | password_expired | +----------------+-----------+-------------------------------------------+------------------+ | root | localhost | | N | | admn | % | *ADC3B5B72617732CD6320A2DA976258E149A7EC8 | N | | yuli | % | *9550E004546348198A143A115550E1262209FB6F | N | | babba | 10.10.0.6 | *F91C86B445B945C083B61A05FF6E197560D187EC | Y | | babba | 10.10.0.9 | | Y | | chikazush | localhost | *17F2B1E48058294841AD66772BEBB7E6E6A005AF | N | | lala | localhost | *74409C8DB64AC1A6829D801915981C46EDBFC64A | N | | badu | localhost | *7B3022FCAEC6534CE67C68322D8AF0C240D95745 | N | +----------------+-----------+-------------------------------------------+------------------+ 8 rows in set (0.00 sec)
Kesimpulan
Dalam tutorial ini, kami telah menunjukkan kepada Anda cara mendapatkan daftar semua akun pengguna MySQL dengan mengambil data dari tabel pengguna di database mysql.
Lihat juga panduan lain tentang mengolah dan mengatur database :