Android

Bagaimana untuk menunjukkan / senarai pengguna dalam mysql

Belajar PHP untuk PEMULA | 10. DATABASE & MySQL

Belajar PHP untuk PEMULA | 10. DATABASE & MySQL

Isi kandungan:

Anonim

Pernahkah anda perlukan untuk mendapatkan senarai semua pengguna dalam pelayan MySQL anda? Terdapat arahan untuk memaparkan pangkalan data dan jadual, tetapi tiada arahan show users MySQL.

Tutorial ini menerangkan cara menyenaraikan semua akaun pengguna dalam pelayan pangkalan data MySQL melalui baris arahan. Kami juga akan menunjukkan kepada anda bagaimana mengetahui pengguna mana yang mempunyai akses kepada pangkalan data yang diberikan.

Sebelum awak bermula

Kami mengandaikan bahawa anda sudah mempunyai pelayan MySQL atau MariaDB yang dipasang pada sistem anda.

Semua arahan dilaksanakan di dalam shell MySQL sebagai pengguna root. Untuk mengakses jenis shell MySQL perintah berikut dan masukkan kata laluan pengguna root MySQL anda apabila diminta:

mysql -u root -p Jika anda terlupa kata laluan root MySQL anda, anda boleh menetapkannya semula dengan mengikuti arahan ini.

Tunjukkan Semua Pengguna MySQL

MySQL menyimpan maklumat mengenai pengguna dalam jadual yang dinamakan user dalam pangkalan data mysql .

Untuk mendapatkan senarai semua akaun pengguna MySQL, gunakan pernyataan SELECT untuk mengambil semua baris dari jadual mysql.users :

SELECT User, Host FROM mysql.user;

Keluaran harus kelihatan sama seperti di bawah:

+------------------+-----------+ | 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 menunjukkan dua lajur dari jadual mysql.user ( User dan Host ), Jadual ini mengandungi lebih daripada 40 lajur seperti Password , Select_priv , Update_priv , dll.

Akaun pengguna di MySQL terdiri daripada dua bahagian: nama pengguna dan nama hos.

Gunakan desc mysql.user; pernyataan untuk memaparkan maklumat mengenai lajur jadual. Sebaik sahaja anda mengetahui nama lajur, anda boleh menjalankan pertanyaan terhadap data yang dipilih.

Sebagai contoh, untuk mendapatkan senarai semua akaun pengguna MySQL termasuk maklumat tentang kata laluan dan sama ada ia aktif atau tamat tempoh, anda akan menggunakan pertanyaan 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)

Tunjukkan Pengguna yang Mempunyai Akses kepada Pangkalan Data Khusus

Maklumat mengenai keistimewaan peringkat pangkalan data disimpan di dalam jadual mysql.db .

Anda boleh meminta jadual untuk mengetahui pengguna mana yang mempunyai akses kepada pangkalan data yang diberikan dan tahap keistimewaan.

Sebagai contoh, untuk mendapatkan senarai semua pengguna yang mempunyai beberapa akses peringkat ke pangkalan data bernama db_name anda akan menggunakan pertanyaan 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 mendapatkan maklumat hanya tentang akaun pengguna yang mempunyai akses kepada pangkalan data yang diberikan, tanpa memaparkan keistimewaan yang digunakan:

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

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

Pertanyaan berikut akan menunjukkan maklumat tentang semua pangkalan data dan pengguna yang berkaitan:

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 | +------------------+-----------+-----------+

Kesimpulannya

Dalam tutorial ini, kami telah menunjukkan cara untuk mendapatkan senarai semua pengguna MySQL dan mengetahui pengguna mana yang mempunyai akses kepada pangkalan data tertentu.

Jangan ragu untuk meninggalkan komen jika anda mempunyai sebarang pertanyaan.

mysql mariadb