Introduzione
La funzione principale di un database è archiviare le informazioni in modo strutturato per consentire un facile accesso a tali informazioni. Avere molti utenti con il permesso di accedere e lavorare sul tuo server MySQL può diventare un problema di sicurezza.
Una breve serie di query nel client MySQL può fornire informazioni preziose per aiutare a prevenire potenziali problemi. Usa i comandi descritti in questo tutorial per imparare come elencare tutti gli account utente su un server MySQL.
Prerequisiti
- Riga di comando/finestra terminale
- MySQL o MariaDB installati
- Utente con sudo o root privilegi
Come accedere a MySQL come root
Accedi al server MySQL come root utente inserendo il seguente comando nel terminale:
sudo mysql --user=root mysql -p
oppure:
sudo mysql -u root -p
Il -p
l'opzione è obbligatoria solo se hai una password predefinita per il tuo utente root. Se non è stata definita alcuna password, utilizzare il comando senza -p
opzione.
L'output sopra mostra che abbiamo ottenuto l'accesso al client MySQL come root utente.
Ora puoi eseguire una query MySQL e recuperare informazioni da mysql.user banca dati.
Come mostrare tutti gli utenti MySQL
Il comando seguente elenca i nomi utente che hanno accesso al server:
SELECT user FROM mysql.user;
Questo comando indica a MySQL di creare una tabella. Il sistema recupera le informazioni dall'Utente nella colonna mysql.user banca dati.
L'output in questo esempio mostra una tabella con quattro righe:
L'elenco che abbiamo ricevuto ha un valore limitato. Per recuperare una panoramica più dettagliata degli utenti MySQL e dei loro permessi, possiamo espandere i parametri di ricerca e aggiungere ulteriori colonne.
Come elencare mysql.user Campi del database
Prima di espandere la query, elenchiamo i campi disponibili in mysql.user Banca dati. Il comando seguente elenca tutte le colonne disponibili:
desc mysql.user;
Le opzioni nel Campo rappresentano le informazioni che possiamo richiedere a mysql.user banca dati.
È possibile combinare diverse opzioni in un unico comando per ottenere informazioni dettagliate sull'utente.
Come mostrare le informazioni utente MySQL
La query seguente fornisce una tabella con l'Utente , Ospite e stringa_autenticazione colonne:
SELECT User, Host, authentication_string FROM mysql.user;
La query aggiunge altre due colonne alla colonna Utente e fornisce informazioni preziose come la password e il nome host dell'utente.
Come elencare solo utenti MySQL unici
Un'altra opzione utile è rimuovere i nomi utente MySQL che appaiono in più righe. Per visualizzare solo nomi utente MySQL univoci, inserisci il seguente comando:
SELECT DISTINCT User FROM mysql.user;
L'output rimuove le righe MySQL duplicate e mostra nomi utente specifici solo una volta.
Mostra utente MySQL corrente
Usa user()
o current_user()
funzione per ottenere i dettagli dell'utente MySQL corrente:
SELECT user();
Oppure:
SELECT current_user();
In entrambi i casi, l'output mostra che l'utente MySQL corrente è [email protected] .
Mostra utenti MySQL registrati
In qualsiasi momento puoi controllare gli utenti che sono attualmente collegati al server del database MySQL. Questa funzione fornisce informazioni preziose durante il monitoraggio del server MySQL per l'utilizzo non autorizzato.
Immettere questa query per visualizzare l'elenco degli utenti MySQL attualmente connessi:
SELECT user, host,db, command FROM information_schema.processlist;
L'output elenca gli utenti che hanno effettuato l'accesso, il database e il comando in esecuzione.