GNU/Linux >> Linux Esercitazione >  >> Linux

Come controllare i privilegi utente MySQL in Linux

La prima/nuova installazione di un MySQL su qualsiasi sistema operativo considera solo l'utente root come utente predefinito del database. Le prime transazioni/attività del database vengono eseguite solo dall'utente root.

Pertanto, non è l'ideale per qualsiasi utente che ha bisogno di accedere al database MySQL per ottenere l'accesso tramite le credenziali dell'utente root. L'accesso dell'utente root deve essere riservato all'amministratore del database che utilizzerà quindi le credenziali dell'utente root per creare utenti del database e concedere i privilegi per eseguire diverse query sul database.

È inoltre pratica ideale per l'amministratore del database evitare di utilizzare l'utente root per accedere a MySQL database ma invece crea un altro utente e concedi a questo utente gli stessi privilegi di accesso e di esecuzione dell'utente root.

Questa guida all'articolo è ideale per MariaDB , MySQL Enterprise Edition e MySQL Community Edition utenti. Per dimostrare come controllare i privilegi degli utenti MySQL, creeremo prima diversi utenti di test con diversi privilegi MySQL.

Crea un nuovo utente MySQL

Innanzitutto, ottieni l'accesso come root al tuo MySQL database dal tuo terminale Linux usando il comando:

$ mysql -u root -p

La sintassi del comando per la creazione di un utente MySQL è la seguente:

CREATE USER 'username'@'localhost' IDENTIFIED BY 'your_user_password';

Il caso d'uso sopra si applica a un MySQL installato su una macchina locale. Se stavi utilizzando un computer/server remoto, dovresti sostituire 'username'@'localhost' con 'username'@'remote_machine_ip_address' .

Se desideri un utente in grado di connettersi a qualsiasi sistema installato MySQL senza specificare il nome host o l'indirizzo IP, segui la sintassi del comando:

CREATE USER 'username'@'%' IDENTIFIED BY 'your_user_password';  

Creiamo ora diversi utenti di database MySQL.

CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password1';  
CREATE USER 'user2'@'localhost' IDENTIFIED BY 'password2';  
CREATE USER 'user3'@'%' IDENTIFIED BY 'password3';  

Tieni presente che questi utenti sono a scopo dimostrativo e pertanto prendi in considerazione la creazione di password utente del database più efficaci per il tuo ambiente di produzione.

Concedi privilegi al nuovo utente MySQL

Il passaggio successivo consiste nell'assegnare a questi utenti del database creati ruoli diversi (privilegi utente). Questi privilegi utente si riferiscono alle azioni del database che i diversi utenti del database possono eseguire.

Possiamo suddividere queste autorizzazioni in:

  • Tutti i privilegi :l'utente a cui è stata assegnata questa autorizzazione può eseguire tutti i ruoli del database.
  • Inserisci :l'utente a cui è stata assegnata questa autorizzazione può inserire i dati delle righe della tabella del database.
  • Elimina :l'utente a cui è stata assegnata questa autorizzazione può eliminare i dati delle righe della tabella del database.
  • Crea :L'utente a cui è stata assegnata questa autorizzazione può creare database e tabelle non esistenti.
  • Rilascia :l'utente assegnato a questo ruolo può rimuovere database e tabelle esistenti.
  • Seleziona :L'utente a cui è stata assegnata questa autorizzazione può leggere le informazioni sui database.
  • Aggiorna :L'utente a cui è stata assegnata questa autorizzazione può modificare i dati delle righe della tabella del database.
  • Opzione di concessione :L'utente a cui è stata assegnata questa autorizzazione può modificare i privilegi di altri account utente del database.

Ad esempio, se dovessimo concedere a utente1 tutti i privilegi su tutti i database e le tabelle per essere come l'utente root, eseguiremmo il comando:

GRANT ALL PRIVILEGES ON *.* TO 'user1'@'localhost';

Se dovessimo concedere a utente2 tutti i privilegi per tutte le tabelle di database di un database specifico (ad es. mysql ), eseguiremmo il comando:

GRANT ALL PRIVILEGES ON mysql.* TO 'user2'@'localhost';

Se dovessimo concedere a utente3 il privilegio di creare solo nuovi utenti MySQL, eseguiremmo il comando:

GRANT INSERT ON mysql.user TO 'user3'@'%';

Verifica dei privilegi utente in MySQL

Per verificare i privilegi del database di un utente, fare riferimento alla sintassi del comando:

SHOW GRANTS FOR username;

Per verificare i privilegi di questi tre utenti:

SHOW GRANTS FOR user1@localhost;
SHOW GRANTS FOR user2@localhost;
SHOW GRANTS FOR user3;

Per revocare i privilegi assegnati dall'utente, fare riferimento alla sintassi del comando:

REVOKE permission_type ON database.table FROM 'username'@'hostname'; 

Ad esempio;

REVOKE INSERT ON mysql.user FROM user3;

[ Potrebbe piacerti anche:Foglio informativo sui comandi del database MySQL per Linux ]

Con questo articolo, ora capisci tutto ciò che c'è da sapere sui privilegi utente di MySQL.


Linux
  1. Come controllare la versione di MySQL in Linux

  2. Come riparare il database MySQL

  3. Come impostare i privilegi di Sudo per l'utente in Linux

  4. Come controllare la versione di MySQL su Linux

  5. Come controllare la versione di MySQL in Linux

Come creare un nuovo utente MySQL tramite phpMyAdmin

Come consentire l'accesso remoto al server di database MySQL

Come rinominare il nome del database MySQL in Linux

Come cambiare utente su Linux

Come aggiungere il database MySQL in SolidCP?

Come aggiungere il database MySQL in WebsitePanel 2.1?