Collegarsi ad un database MySQL ed effettuare una query
Sommario:
- Prima di iniziare
- Mostra tutti gli utenti MySQL
- Mostra agli utenti che hanno accesso a un database particolare
- Conclusione
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.
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 mariadbGli Adobe Flash Tools sono una vittoria per gli sviluppatori, ma non per gli utenti iPhone
Mentre tutte le altre piattaforme hanno Flash 10.1, l'iPhone ottiene Flash ha convertito le app come premio di consolazione.
Come eliminare gli account degli utenti mysql
Questo tutorial spiega come eliminare gli account utente MySQL / MariaDB. In MySQL è possibile rimuovere uno o più utenti e assegnare i privilegi con l'istruzione DROP USER.
Come elencare gli utenti in linux
Hai mai desiderato elencare tutti gli utenti nel tuo sistema Linux o contare il numero di utenti nel sistema? Esistono comandi per creare un utente, eliminare un utente, elencare gli utenti che hanno effettuato l'accesso, ma qual è il comando per elencare tutti gli utenti in Linux?