androide

Come mostrare / elencare gli utenti in mysql

Collegarsi ad un database MySQL ed effettuare una query

Collegarsi ad un database MySQL ed effettuare una query

Sommario:

Anonim

Hai mai avuto bisogno di ottenere un elenco di tutti gli utenti nel tuo server MySQL? Esistono comandi per mostrare database e tabelle, ma non esiste alcun comando MySQL show users .

Questo tutorial spiega come elencare tutti gli account utente in un server di database MySQL attraverso la riga di comando. Ti mostreremo anche come scoprire quali utenti hanno accesso a un determinato database.

Prima di iniziare

Partiamo dal presupposto che sul tuo sistema sia già installato un server MySQL o MariaDB.

Tutti i comandi vengono eseguiti all'interno della shell MySQL come utente root. Per accedere alla shell MySQL digitare il comando seguente e inserire la password dell'utente root di MySQL quando richiesto:

mysql -u root -p Se hai dimenticato la password di root di MySQL, puoi reimpostarla seguendo queste istruzioni.

Mostra tutti gli utenti MySQL

MySQL memorizza le informazioni sugli utenti in una tabella denominata user nel database mysql .

Per ottenere un elenco di tutti gli account utente MySQL, utilizzare l'istruzione SELECT per recuperare tutte le righe dalla tabella mysql.users :

SELECT User, Host FROM mysql.user;

L'output dovrebbe essere simile al seguente:

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

Il comando sopra mostra solo due colonne dalla tabella mysql.user ( User e Host ), questa tabella contiene più di 40 colonne come Password , Select_priv , Update_priv , ecc.

Un account utente in MySQL è composto da due parti: un nome utente e un nome host.

Usa desc mysql.user; istruzione per visualizzare informazioni sulle colonne della tabella. Una volta che conosci il nome della colonna, puoi eseguire una query su un dato selezionato.

Ad esempio, per ottenere un elenco di tutti gli account degli utenti MySQL, comprese le informazioni sulla password e se è attiva o scaduta, utilizzare la seguente query:

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)

Mostra agli utenti che hanno accesso a un database particolare

Le informazioni sui privilegi a livello di database sono archiviate nella tabella mysql.db .

È possibile eseguire una query sulla tabella per scoprire quali utenti hanno accesso a un determinato database e il livello dei privilegi.

Ad esempio, per ottenere un elenco di tutti gli utenti che dispongono di un livello di accesso al database denominato db_name , utilizzare la seguente query:

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)

Per recuperare informazioni solo sugli account utente che hanno accesso a un determinato database, senza visualizzare i privilegi utilizzare:

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

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

La seguente query ti mostrerà informazioni su tutti i database e gli utenti associati:

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

Conclusione

In questo tutorial, abbiamo mostrato come ottenere un elenco di tutti gli utenti MySQL e scoprire quali utenti hanno accesso a un determinato database.

Sentiti libero di lasciare un commento in caso di domande.

mysql mariadb