Mysql Ottieni un elenco di account utente

Mysql Ottieni un elenco di account utente

Come amministratore del database, incontrerai istanze in cui devi conoscere gli utenti in un server MySQL. Ciò ti consentirà di sapere quali utenti possono eseguire attività specifiche e gestire le loro autorizzazioni.

Questo tutorial esplorerà il metodo per recuperare gli utenti disponibili in un server MySQL.

Requisiti

Prima di iniziare con questo tutorial, supponiamo che tu abbia:

  1. L'ultima versione di MySQL Server installata sul tuo sistema.
  2. Accesso alla sessione di shell mysql.

Passaggio 1 - Accedi a Mysql

Accederai alla tua shell MySQL per mostrare e gestire gli utenti sul tuo server MySQL.

Sintassi del comando:

$ mysql -u -P

Sostituisci il nome utente con l'utente di destinazione che si desidera accedere.

Ad esempio, come root, eseguire:

$ mysql -u root -p

Immettere la password del nome utente. Una volta autenticato correttamente, dovresti cadere nella shell SQL come mostrato:

Qui, puoi iniziare a eseguire comandi SQL e vedere l'output risultante.

Elencare gli utenti in mysql

Sfortunatamente, MySQL non fornisce un comando per utenti dello spettacolo nativo che possiamo usare. Ciò significa che dobbiamo giocare con come MySQL memorizza le informazioni.

Ad esempio, MySQL usa MySQL.Tabella utente per archiviare le informazioni dell'utente. Possiamo quindi utilizzare le informazioni archiviate in questa tabella per recuperare varie informazioni.

Mysql mostra tutti gli utenti

Cominciamo discutendo su come recuperare tutti gli utenti. Esegui la query:

SELEZIONARE
utente
DA
mysql.utente;

Il comando recupererà la colonna utente dal mysql.Tabella utente e restituire i risultati come mostrato:

Dall'output sopra, possiamo vedere vari utenti come root, mysql.sys, mysql.sessione, ecc.

Ricorda che il comando sopra potrebbe richiedere di modificare i database. Se ottieni la "query 1: tavolo" mysql.Errore "non esiste", eseguire il comando di seguito per cambiare database.

> Usa mysql

Una volta ottenuto l'elenco degli utenti sul server, è possibile raccogliere informazioni sull'utente utilizzando comandi come DESS.

Mostra agli utenti una sessione attiva

Possiamo anche ottenere un elenco di utenti con sessioni attive utilizzando il database Information_Schema. Questo database memorizza le informazioni sul server e sulle sessioni correnti.

Eseguire il comando:

Il comando sopra recupererà il nome utente, l'host e il database dalla tabella di processo. Questo mostra il nome utente attuale, l'host da cui si sta connettendo il client e il database a cui si sono collegati.

Un output di esempio è come mostrato:

Dall'output sopra, possiamo vedere che attualmente ci sono tre utenti connessi. Ricorda che lo stesso nome utente ma un host diverso è trattato come un nome utente diverso.

Mostra l'utente attuale

A volte, potrebbe essere necessario raccogliere informazioni rapide sull'utente attuale. Fortunatamente, MySQL ha una funzione utente () che restituisce l'utente attualmente accessibile.

Un esempio è come mostrato:

SELEZIONARE
utente();

Il comando dovrebbe restituire le informazioni sull'utente corrente come:

Ottieni usi con l'accesso a un database specifico

Supponiamo di voler determinare il nome utente con l'accesso a un DB di destinazione? È possibile utilizzare la tabella DB e il filtro per quel particolare nome utente.

Prendi l'illustrazione del codice di seguito:

SELEZIONARE
*
DA
mysql.db
DOVE
Db = 'sys' \ g;

Il comando sopra restituirà l'utente con qualsiasi accesso al database SYS. Sentiti libero di sostituire SYS con il nome del database che si desidera valutare.

Il comando restituirà un output come mostrato:

************************* 1. riga ***************************
Ospite: localhost
DB: sys
Utente: mysql.sys
Select_Priv: n
Insert_priv: n
Update_priv: n
Delete_priv: n
Create_priv: n
Drop_priv: n
Grant_Priv: n
Riferimenti_Priv: n
INDICE_PRIV: n
Alter_priv: n
Create_tmp_table_priv: n
Lock_tables_Priv: n
Create_view_priv: n
Show_view_priv: n
Create_routine_priv: n
Alter_routine_priv: n
Execute_Priv: n
Event_priv: n
Trigger_priv: y
1 riga in set (0.00 sec)

Dall'output sopra, possiamo vedere che il mysql.L'utente sys ha un trigger privilegio nel database.

Conclusione

Come illustrato in questo tutorial, possiamo utilizzare varie tabelle e database MySQL per recuperare informazioni sugli utenti. Questa potente funzionalità consente di creare procedure e altri tipi definiti dall'utente per raccogliere informazioni sull'utente.