Mysql
 sql >> Database >  >> RDS >> Mysql

Come creare un nuovo utente e concedere autorizzazioni in MySQL

MySQL è un sistema di gestione di database popolare e ampiamente utilizzato che archivia e organizza i dati e consente agli utenti di recuperarli. Viene fornito con una vasta gamma di opzioni che concedono agli utenti determinate autorizzazioni per tabelle e database.

In questa guida imparerai come creare un nuovo utente e concedere autorizzazioni in MySQL banca dati.

Come creare un nuovo utente in MySQL

Per creare un nuovo utente, prima accedi alla shell MySQL.

$ sudo mysql -u root -p

Fornisci la password sudo seguita dalla password fornita durante la configurazione del database MySQL e premi INVIO . Successivamente, riceverai questo messaggio.

Per creare un nuovo utente, utilizza la sintassi mostrata di seguito:

MariaDB [none]> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

Ad esempio, per creare un nuovo utente chiamato "tecmint ' all'interno del database, invoca il comando:

MariaDB [none]> CREATE USER 'tecmint'@'localhost' IDENTIFIED BY 'QkYKmw$5tec';

Alcuni punti da tenere a mente

Quando aggiungi un utente localmente, ad esempio sul sistema su cui hai installato MySQL , l'host dell'utente è specificato come localhost e non l'indirizzo IP. La parola chiave "localhost ' si traduce in 'questo computer ' e MySQL lo tratta in modo univoco. Fondamentalmente, localhost viene utilizzato dal client mysql per stabilire una connessione al server di database MySQL installato localmente.

Finora, il tecmint l'utente non dispone delle autorizzazioni per interagire con i database. In effetti, l'utente non può nemmeno accedere alla shell MySQL.

Per concedere all'utente l'accesso completo a tutti i database, comprese le tabelle, esegui.

MariaDB [none]> GRANT ALL PRIVILEGES ON * . * TO 'tecmint'@'localhost';

Nel comando precedente, gli asterischi puntano rispettivamente al database e alla tabella a cui l'utente può accedere. Concede all'utente tutti i diritti sul database – lettura , scrivi , modifica ed esegui inclusa l'esecuzione di tutte le attività anche su altri database e tabelle.

Finora, abbiamo concesso all'utente l'accesso completo al database. Sebbene questo sia utile per spiegare i concetti di MySQL, generalmente non è raccomandato in quanto potrebbe rappresentare un rischio per la sicurezza dei tuoi database. Pensa a cosa potrebbe succedere se un hacker si impossessasse della password dell'utente. Procederemo ulteriormente e discuteremo come assegnare autorizzazioni specifiche nella sezione successiva.

Quando hai finito di assegnare i permessi all'utente, ricarica tutti i privilegi come mostrato per rendere effettive le modifiche.

MariaDB [none]> FLUSH PRIVILEGES

Come concedere autorizzazioni utente diverse

Ecco una ripartizione delle possibili autorizzazioni che puoi concedere agli utenti:

  • TUTTI I PRIVILEGI – Come visto in precedenza, questo garantisce a un utente MySQL l'accesso completo a un database specifico.
  • CREA – Consente agli utenti di creare nuovi database o tabelle.
  • DROP – Consente agli utenti di eliminare database o utenti.
  • INSERIRE – Consente agli utenti di inserire righe nelle tabelle.
  • ELIMINA – Consente agli utenti di eliminare righe dalle tabelle.
  • SELEZIONA – con l'autorizzazione "SELECT", gli utenti possono leggere il contenuto di una tabella.
  • AGGIORNAMENTO – Consente agli utenti di aggiornare le righe in una tabella.
  • OPZIONE DI CONCESSIONE – Gli utenti possono concedere o rimuovere i privilegi di altri utenti.

Per concedere un'autorizzazione utente specifica, utilizzare la sintassi:

MariaDB [none]> GRANT permission_type ON database_name.table_name TO 'username'@'localhost';

Inoltre, puoi assegnare autorizzazioni a tutte le tabelle in un database con un unico asterisco come mostrato:

MariaDB [none]> GRANT permission_type ON database_name.* TO 'username'@'localhost';

Ad esempio, per assegnare SELECT autorizzazioni a "tecmint ' utente su tutte le tabelle del database testdb , esegui il comando.

MariaDB [none]> GRANT SELECT ON testdb.* TO 'tecmint'@'localhost';

Quindi svuota i privilegi per rendere effettive le modifiche.

MariaDB [none]> FLUSH PRIVILEGES;

Inoltre, puoi assegnare più autorizzazioni contemporaneamente separandole con una virgola come mostrato.

MariaDB [none]> GRANT INSERT, UPDATE ON testdb.* TO 'tecmint'@'localhost';

Come revocare le autorizzazioni MySQL

Per revocare le autorizzazioni a un utente, utilizza la sintassi:

MariaDB [none]> REVOKE permission_type ON database_name.table_name FROM 'username'@'localhost';

Ad esempio, per revocare INSERT autorizzazioni dell'utente "tecmint ', esegui il comando.

MariaDB [none]> REVOKE INSERT ON testdb.* FROM tecmint'@'localhost';
MariaDB [none]> FLUSH PRIVILEGES

Per dare un'occhiata alle autorizzazioni correnti di un utente, esegui:

MariaDB [none]> SHOW GRANTS FOR 'username'@'localhost';

Dall'output di seguito, possiamo vedere che INSERT il permesso è stato cancellato da "tecmint ' utente lasciando solo SELECT e AGGIORNAMENTO diritti su testdb banca dati.

Per testare l'accesso alla shell MySQL utilizzando il nuovo utente, prima disconnettersi.

MariaDB [none]> quit;

Quindi accedi nuovamente.

$ sudo mysql -u tecmint -p

Fornisci la password dell'utente e premi INVIO per accedere alla shell.

Per abbandonare un utente, usa il DROP comando, proprio come faresti quando elimini un database.

MariaDB [none]> DROP USER 'username'@'localhost';

Potresti anche leggere i seguenti articoli relativi a MySQL:

  • Suggerimenti utili per risolvere gli errori comuni in MySQL
  • Mytop:uno strumento utile per monitorare le prestazioni di MySQL/MariaDB in Linux
  • Come modificare la porta MySQL/MariaDB predefinita in Linux
  • Come reimpostare la password di root MySQL o MariaDB in Linux
Conclusione

Si spera che ora tu possa creare utenti nei tuoi server di database MySQL e assegnare o revocare comodamente le autorizzazioni.