Creare un utente e gestire i privilegi di accesso in MySQL

Come creare utenti MySQL e gestire i loro privilegi.

Quando si lavora con un server dedicato o un VPS, una delle attività fondamentali è organizzare l'archiviazione e la gestione dei dati. MySQL è un sistema di gestione di database che consente di strutturare le informazioni in modo efficiente e di controllare gli accessi degli utenti. È adatto sia a piccoli progetti che ad applicazioni di scala maggiore, garantendo sicurezza, affidabilità e facilità d'uso.

MySQL utilizza un sistema di utenti per controllare l'accesso ai database. Un amministratore o un utente autorizzato può concedere ad altri utenti un accesso completo o limitato a database e tabelle specifici.

Privilegi MySQL

Privilegi a livello di database e tabella:

  • CREATE — creare database e tabelle.
  • DROP — eliminare database e tabelle.
  • INSERT — aggiungere righe alle tabelle.
  • UPDATE — modificare i dati delle righe. Da non confondere con ALTER, che modifica la struttura della tabella.
  • DELETE — rimuovere righe dalle tabelle.
  • ALTER — modificare la struttura delle tabelle; richiede i privilegi CREATE e INSERT.
  • SELECT — leggere dati dalle tabelle.
  • GRANT OPTION — concedere o revocare privilegi ad altri utenti (limitato ai privilegi già posseduti dall'utente).
  • LOCK TABLES — bloccare le tabelle durante le operazioni di scrittura.
  • REFERENCES — creare relazioni di chiave esterna tra tabelle.
  • EVENT — creare, modificare ed eliminare eventi del pianificatore.
  • TRIGGER — creare, modificare ed eliminare trigger per le operazioni DELETE, UPDATE e INSERT.
  • INDEX — creare e rimuovere indici.
  • CREATE TEMPORARY TABLES — creare tabelle temporanee per la durata di una sessione.
  • CREATE VIEW — creare viste che aggregano dati da altre tabelle.
  • SHOW VIEW — visualizzare la query SQL alla base di una definizione di vista.
  • CREATE ROUTINE — creare procedure memorizzate.
  • ALTER ROUTINE — modificare procedure memorizzate.
  • EXECUTE — eseguire procedure memorizzate.
  • FILE — accedere ai file del server disponibili per MySQL e creare file nelle directory in cui MySQL ha permessi di scrittura.

Privilegi amministrativi:

  • CREATE TABLESPACE — creare, modificare ed eliminare tablespace.
  • CREATE USER — creare, modificare ed eliminare utenti MySQL.
  • PROCESS — visualizzare informazioni sui thread attivi del server.
  • PROXY — accedere come un altro utente per verificarne i diritti di accesso.
  • RELOAD — eseguire il comando FLUSH per svuotare la cache MySQL.
  • REPLICATION CLIENT — eseguire SHOW MASTER STATUS, SHOW SLAVE STATUS e SHOW BINARY LOG.
  • REPLICATION SLAVE — consentire ai server replica di ricevere aggiornamenti dal server primario.
  • SHOW DATABASES — elencare tutti i database presenti sul server.
  • SHUTDOWN — arrestare il server MySQL.
  • SUPER — diritti amministrativi estesi: terminare i processi di altri utenti, modificare le variabili di sistema globali, gestire logging e replica.
  • ALL — tutti i privilegi disponibili, ad eccezione di GRANT OPTION.

I nostri prodotti e servizi

Hosting WebServizi di hosting affidabili per siti web di qualsiasi dimensione.
Ordina
VPSInfrastruttura cloud flessibile con accesso root completo.
Ordina
Server DedicatiServer dedicati per le massime prestazioni.
Ordina

Creare un utente

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

Per impostazione predefinita, il nuovo utente non ha privilegi su alcun database.

Concedere privilegi

Concedere tutti i privilegi su tutti i database e le tabelle:

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

Concedere privilegi specifici su un database o una tabella specifica:

GRANT [privilege type] ON [database].[table] TO '[username]'@'localhost';

Usa * al posto del nome di un database o di una tabella per applicare i privilegi a tutti.

Dopo aver apportato modifiche, ricarica le tabelle dei privilegi:

FLUSH PRIVILEGES;

Revocare i privilegi

REVOKE [privilege type] ON [database].[table] FROM '[username]'@'localhost';

Eliminare un utente

DROP USER 'demo'@'localhost';

Verificare l'account

Uscire da MySQL:

quit

Quindi accedere nuovamente come nuovo utente:

mysql -u [username] -p

Aiuto

Hai domande o ti serve una mano? Scrivici tramite il sistema di ticket — siamo sempre qui per aiutarti!

Hai bisogno di aiuto?I nostri ingegneri ti aiuteranno gratuitamente con qualsiasi domanda in pochi minutiContattaci