Perintah select user, host from mysql.user; akan menampilkan

Membuat FORM LOGIN PHP MySQL dengan SESSION (Lengkap)

Membuat FORM LOGIN PHP MySQL dengan SESSION (Lengkap)
  • Sebelum kamu memulai
  • Tampilkan Semua Pengguna MySQL
  • Tampilkan Pengguna yang Memiliki Akses ke Database Tertentu
  • Kesimpulan

Pernahkah Anda perlu mendapatkan daftar semua pengguna di server MySQL Anda? Ada perintah untuk menampilkan database dan tabel, tetapi tidak ada perintah show users MySQL.

Tutorial ini menjelaskan cara membuat daftar semua akun pengguna di server database MySQL melalui baris perintah. Kami juga akan menunjukkan kepada Anda bagaimana mengetahui pengguna mana yang memiliki akses ke database yang diberikan.

Sebelum kamu memulai

Kami berasumsi bahwa Anda sudah menginstal server MySQL atau MariaDB di sistem Anda.

Semua perintah dijalankan 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 lupa kata sandi root MySQL, Anda dapat meresetnya dengan mengikuti instruksi ini.

Tampilkan Semua Pengguna MySQL

MySQL menyimpan informasi tentang pengguna dalam tabel bernama user di database mysql .

Untuk mendapatkan daftar semua akun pengguna MySQL, gunakan pernyataan SELECT untuk mengambil semua baris dari tabel mysql.users :

SELECT User, Host FROM mysql.user;

Outputnya akan terlihat seperti di bawah ini:

+------------------+-----------+ | user | host | +------------------+-----------+ | root | localhost | | luke | % | | yoda | % | | jabba | 10.10.0.6 | | jabba | 10.10.0.9 | | chewbacca | localhost | | leia | localhost | | han | 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 dua bagian: nama pengguna dan nama host.

Gunakan desc mysql.user; pernyataan untuk menampilkan informasi tentang kolom tabel. Setelah Anda tahu nama kolom, Anda dapat menjalankan 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 kedaluwarsa, Anda akan menggunakan kueri berikut:

SELECT User, Host, Password, password_expired FROM mysql.user;

+----------------+-----------+-------------------------------------------+------------------+ | User | Host | Password | password_expired | +----------------+-----------+-------------------------------------------+------------------+ | root | localhost | | N | | luke | % | *ADC3B5B27617732CD6320A2DA976258E149A7EC8 | N | | yoda | % | *9550E004046348198A143A115550E1262209FB6F | N | | jabba | 10.10.0.6 | *F91C86B486B945C083B61A05FF6E197560D187EC | Y | | jabba | 10.10.0.9 | | Y | | chewbacca | localhost | *17F2B1E48029294841AD66772BEBB7E6E6A005AF | N | | leia | localhost | *74409C8DB55AC1A6829D801915981C46EDBFC64A | N | | han | localhost | *7B3022FCAEC3534CE67C68322D8AF0C240D95745 | N | +----------------+-----------+-------------------------------------------+------------------+ 8 rows in set (0.00 sec)

Tampilkan Pengguna yang Memiliki Akses ke Database Tertentu

Informasi tentang hak istimewa tingkat basis data disimpan dalam tabel mysql.db .

Anda dapat meminta tabel untuk mengetahui pengguna mana yang memiliki akses ke database yang diberikan dan tingkat hak istimewa.

Misalnya, untuk mendapatkan daftar semua pengguna yang memiliki akses level ke database bernama db_name Anda akan menggunakan kueri berikut:

SELECT * FROM mysql.db WHERE Db = 'db_name'\G;

*************************** 1. row *************************** Host: localhost Db: db_name User: db_user Select_priv: Y Insert_priv: Y Update_priv: Y Delete_priv: Y Create_priv: Y Drop_priv: Y Grant_priv: N References_priv: Y Index_priv: Y Alter_priv: Y Create_tmp_table_priv: Y Lock_tables_priv: Y Create_view_priv: Y Show_view_priv: Y Create_routine_priv: Y Alter_routine_priv: Y Execute_priv: Y Event_priv: Y Trigger_priv: Y 1 row in set (0.00 sec)

Untuk mengambil informasi hanya tentang akun pengguna yang memiliki akses ke database yang diberikan, tanpa menampilkan hak istimewa gunakan:

SELECT db, host, user FROM mysql.db WHERE db = 'db_name'

+---------+-----------+---------+ | db | host | user | +---------+-----------+---------+ | db_name | localhost | db_user | +---------+-----------+---------+

Kueri berikut akan menampilkan informasi tentang semua database dan pengguna terkait:

SELECT db, host, user FROM mysql.db WHERE db = 'db_name'

+------------------+-----------+-----------+ | db | host | user | +------------------+-----------+-----------+ | db_name | localhost | db_user | | ghost_production | localhost | chewbacca | | blog_db | localhost | leia | | linuxize | localhost | han | +------------------+-----------+-----------+

Kesimpulan

Dalam tutorial ini, kami telah menunjukkan cara mendapatkan daftar semua pengguna MySQL dan mencari tahu pengguna mana yang memiliki akses ke database tertentu.

Jangan ragu untuk meninggalkan komentar jika Anda memiliki pertanyaan.

marisb mysql