Come Creare e Gestire Utenti MySQL

Pubblicato: di Alejandro Granata
Come Creare e Gestire Utenti MySQL thumbnail

Immagina una biblioteca dove chiunque può entrare e apportare modifiche ai libri in qualsiasi momento.

Entri per controllare Il Signore degli Anelli, ma improvvisamente, invece di un racconto senza tempo di amicizia e coraggio di fronte al male onnipresente, è esattamente il contrario.

Qualcuno ha riscritto l’eroico viaggio di Frodo e Sam verso Mordor, facendoli rinunciare a salvare la Terra di Mezzo, scegliendo invece di aprire una gioielleria a Bree. Il loro primo cliente? Sauron. E indovina un po’, sta cercando un anello.

Per quanto riguarda Aragorn, Legolas e Gimli? Diciamo solo che chi ha modificato la storia è molto appassionato di fan fiction. Lasciamo perdere così.

Il tuo sito web è come quella biblioteca, e il database che lo alimenta è come tutti i libri al suo interno. Se permetti a chiunque di accedere e apportare modifiche, potresti trovarti in una situazione di riscrittura di Il Signore degli Anelli — ma molto peggio perché potrebbe mettere a rischio l’intero sito (e tutti i suoi dati).

Database

Un database è una raccolta di informazioni accessibili ai computer. I database sono utilizzati per memorizzare informazioni come record dei clienti, cataloghi prodotti e transazioni finanziarie.

Leggi di più

Ecco perché devi controllare chi può vedere, accedere e modificare i tuoi dati per mantenere il tuo sito sicuro e funzionante.

Questo post ti guiderà attraverso le nozioni di base della gestione degli utenti MySQL, dalla creazione di account utente all’assegnazione e modifica dei permessi.

Pronto a tuffarti? Inizia ora!

Cos’è un Database MySQL?

Un database MySQL è una raccolta strutturata di dati memorizzati elettronicamente e gestiti tramite il Sistema di Gestione del Database (DBMS) MySQL.

MySQL, un sistema di gestione di database relazionali open-source, utilizza il Linguaggio Strutturato di Interrogazione (SQL) per accedere, gestire e manipolare i dati.

Un database MySQL è progettato per gestire tutto, da una singola riga di informazioni a grandi dataset composti da milioni di righe. È costruito per memorizzare i dati in tabelle, che sono organizzate in righe e colonne. Ogni tabella in un database MySQL serve uno scopo specifico, contenendo dati pertinenti a diversi aspetti del tuo sito o applicazione web.

MySQL è noto per essere affidabile e facile da usare. Gli sviluppatori web di vari settori lo utilizzano per applicazioni web, applicazioni di registrazione, data warehousing e altro ancora. Che tu stia memorizzando informazioni sugli utenti, cataloghi di prodotti o registri di transazioni, MySQL è robusto e scalabile e può probabilmente soddisfare le tue esigenze di gestione del database.

Consiglio Pro: Hai bisogno di migrare o collegare un database MySQL al tuo sito DreamHost? Trova un tutorial facile da seguire nella nostra Base di conoscenza.

Ricevi contenuti direttamente nella tua casella di posta

Iscriviti ora per ricevere tutti gli ultimi aggiornamenti direttamente nella tua casella di posta.

Spiegazione Degli Account Utente MySQL

Gli account utente MySQL sono essenziali per gestire l’accesso al tuo database. Ogni account utente in MySQL può ricevere specifici permessi che determinano quali azioni l’utente può eseguire. Questo controllo granulare aiuta a mantenere la sicurezza e l’integrità dei tuoi dati.

Il Ruolo dell’Utente Root

Quando installi per la prima volta MySQL, viene creato un account utente predefinito chiamato root.

L’utente Root ha pieni privilegi amministrativi, il che significa che può eseguire qualsiasi azione sul database, inclusa la creazione e l’eliminazione di database, l’aggiunta e la rimozione di utenti, e il conferimento o la revoca di permessi.

Anche se l’utente root è potente, non consigliamo di affidarsi esclusivamente a questo account per tutte le operazioni. Utilizzare l’account root per le operazioni quotidiane rappresenta un notevole rischio per la sicurezza.

Se qualcuno ottiene accesso non autorizzato a questo account, avrà il controllo sulla tua base dati.

Diagramma degli account utente MySQL, che mostra Utente Root, Sviluppatore, Amministratore e Nuovo Utente collegati alle caselle del database MySQL.

Perché Creare Nuovi Utenti?

Per una maggiore sicurezza e per semplificare la gestione del database, la prassi migliore è creare account utente specifici per diversi scopi.

Ad esempio, potresti creare account separati per sviluppatori, amministratori e processi applicativi, dando a ciascun tipo di account solo i permessi necessari per svolgere i loro compiti. In questo modo, minimizzi il rischio di azioni accidentali o malevoli che potrebbero compromettere l’integrità e la sicurezza del tuo database.

Creare nuovi account utente ti permette di:

  • Migliora la sicurezza del database e del sito: Limita l’accesso ai dati sensibili e alle operazioni critiche assegnando solo i permessi necessari a ciascun utente.
  • Organizza meglio i ruoli: Definisci chiaramente ruoli e responsabilità all’interno del tuo team, dando a tutti il livello appropriato di accesso ai compiti che devono svolgere.
  • Rendi più semplice la gestione del tuo database: Tieni traccia e gestisci facilmente le attività degli utenti, semplificando l’audit delle modifiche e l’identificazione dei problemi.

Come Gestire i Tuoi Utenti MySQL (Due Metodi)

Copriremo due metodi principali per gestire i tuoi utenti MySQL: utilizzando direttamente MySQL, e utilizzando il pannello di DreamHost. Alla fine, il metodo che userai dipenderà dal tuo livello di comfort con gli strumenti da riga di comando e dalle tue esigenze specifiche.

Gestione Degli Utenti Con MySQL

Per gestire gli utenti MySQL direttamente tramite MySQL, devi avere MySQL installato sul tuo sistema.

Questo comporta il download del software MySQL dal sito ufficiale MySQL, la sua installazione e la configurazione in base ai requisiti del tuo sistema operativo.

Una volta installato, puoi interagire con il tuo database MySQL utilizzando il client da linea di comando di MySQL.

Nota Per Esperti: La maggior parte dei comandi seguenti può essere utilizzata solo su server dedicati. Puoi consultare la nostra Base di conoscenza per ulteriori informazioni.

Pagina dei download della community MySQL che mostra le opzioni di MySQL Installer 8.0.37 per Windows, con link per il download e dettagli sui file.

Per installare MySQL, segui questi passaggi:

  1. Visita il sito ufficiale di MySQL, scarica l’installer e segui le istruzioni di installazione per il tuo sistema operativo (Windows, macOS o Linux).
  2. Dopo l’installazione, dovrai configurare il server MySQL per impostare gli account utente iniziali e le impostazioni di sicurezza.
  3. Usa il Terminale (su macOS e Linux) o il prompt dei comandi (su Windows) per accedere all’interfaccia a riga di comando di MySQL inserendo il comando mysql -u root -p, seguito dalla tua password di root.

Una volta configurato MySQL, puoi creare, gestire ed eliminare account utente utilizzando comandi SQL.

Questo metodo ti offre un alto livello di controllo e flessibilità, ma richiede che tu sia familiare con la sintassi SQL e le operazioni da riga di comando (che approfondiremo di seguito).

Come Creare un Account Utente MySQL

  1. Accedi al server MySQL come utente root. Inserisci il seguente comando: mysql -u root -p.
  2. Ti verrà chiesto di inserire la password di root. Una volta autenticato, sarai connesso al server MySQL.
  3. Per creare un nuovo utente, utilizza l’istruzione CREATE USER. Sostituisci newuser con il nome utente desiderato e password con una password sicura per il nuovo utente: CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
  4. Questo comando crea un nuovo utente che può connettersi solo dalla macchina locale (localhost). Se desideri che l’utente si connetta da qualsiasi host, sostituisci localhost con %.
  5. Per applicare le modifiche, esegui il comando FLUSH PRIVILEGES: FLUSH PRIVILEGES;

Nota per Nerd: Quando viene assegnata una password tramite il prompt dei comandi, è buona prassi svuotare la cronologia del terminale per ridurre il rischio che qualcuno possa imbattersi in una password.

Come Concedere Privilegi a un Utente MySQL

  1. Accedi al server MySQL come utente root. Inserisci il seguente comando: mysql -u root -p.
  2. Inserisci la tua password di root per connetterti al server MySQL.
  3. Utilizza l’istruzione GRANT per assegnare privilegi specifici a un utente. I privilegi possono essere concessi per specifici database, tabelle o anche colonne. Ecco alcuni esempi comuni:
    1. Concedi tutti i privilegi su un database specifico (Questo comando concede tutti i privilegi sul database exampledb all’utente newuser che si collega da localhost): GRANT ALL PRIVILEGES ON exampledb.* TO 'newuser'@'localhost';
    2. Concedi privilegi specifici su un database specifico (Questo comando concede solo i privilegi SELECT, INSERT e UPDATE sul database exampledb all’utente newuser che si collega da localhost): GRANT SELECT, INSERT, UPDATE ON exampledb.* TO 'newuser'@'localhost';
    3. Concedi tutti i privilegi su tutti i database (Questo comando concede tutti i privilegi su tutti i database all’utente newuser che si collega da localhost. L’opzione WITH GRANT OPTION permette all’utente di concedere privilegi ad altri utenti): GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost' WITH GRANT OPTION;
    4. Concedi privilegi su tabelle specifiche (Questo comando concede i privilegi SELECT e INSERT sulla tabella exampletable all’interno del database exampledb all’utente newuser): GRANT SELECT, INSERT ON exampledb.exampletable TO 'newuser'@'localhost';
  4. Per applicare le modifiche, utilizza il comando FLUSH PRIVILEGES: FLUSH PRIVILEGES;

Come Vedere i Privilegi di un Utente MySQL

  1. Accedi al server MySQL come utente root. Inserisci il seguente comando: mysql -u root -p.
  2. Inserisci la tua password di root per connetterti al server MySQL.
  3. La dichiarazione SHOW GRANTS è utilizzata per visualizzare i privilegi concessi a un determinato utente. Per vedere i privilegi di un particolare utente, usa il seguente comando, sostituendo newuser con il nome utente e localhost con l’host da cui l’utente si connette: SHOW GRANTS FOR 'newuser'@'localhost';
  4. Esamina attentamente i privilegi elencati per assicurarti che l’utente abbia i permessi corretti. Se sono necessarie delle modifiche, puoi modificare i privilegi dell’utente utilizzando le dichiarazioni GRANT o REVOKE, che tratteremo nelle prossime sezioni.

Come Modificare i Permessi per un Utente MySQL

  1. Accedi al server MySQL come utente root. Inserisci il seguente comando: mysql -u root -p.
  2. Inserisci la tua password di root per connetterti al server MySQL.
  3. Per concedere privilegi aggiuntivi a un utente, usa l’istruzione GRANT. Ad esempio, per concedere il privilegio UPDATE sul database exampledb all’utente newuser che si connette da localhost, usa: GRANT UPDATE ON exampledb.* TO 'newuser'@'localhost';
  4. Per rimuovere specifici privilegi da un utente, usa l’istruzione REVOKE. Ad esempio, per revocare il privilegio INSERT sul database exampledb dall’utente newuser che si connette da localhost, usa: REVOKE INSERT ON exampledb.* FROM 'newuser'@'localhost';
  5. Dopo aver utilizzato GRANT o REVOKE, ricordati di applicare le modifiche usando il comando FLUSH PRIVILEGES: FLUSH PRIVILEGES;

Se devi cambiare completamente i privilegi di un utente, potrebbe essere più facile revocare tutti i suoi privilegi esistenti prima e poi concedere il nuovo insieme di permessi. Per revocare tutti i privilegi da un utente, usa: REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'newuser'@'localhost';

Poi, concedi il nuovo set di privilegi come necessario: GRANT SELECT, UPDATE ON exampledb.* TO 'newuser'@'localhost';

Non dimenticare di svuotare i privilegi dopo aver apportato queste modifiche: FLUSH PRIVILEGES;

Come Eliminare un Utente MySQL

  1. Accedi al server MySQL come utente root. Inserisci il seguente comando: mysql -u root -p.
  2. Inserisci la tua password di root per connetterti al server MySQL.
  3. Usa l’istruzione DROP USER per eliminare l’account utente. Sostituisci newuser con il nome utente e localhost con l’host da cui l’utente si connette: DROP USER 'newuser'@'localhost';
  4. Se l’utente può connettersi da qualsiasi host, usa: DROP USER 'newuser'@'%';
  5. Prima di eliminare un utente, è buona pratica assicurarsi che nessun oggetto (come trigger o procedure) dipenda dall’utente. Facendo ciò, eviterai problemi inaspettati dopo la rimozione dell’utente. Puoi rivedere gli oggetti dipendenti nel tuo database e riassegnare la proprietà se necessario.
  6. Anche se l’istruzione DROP USER rimuove l’account utente e i suoi privilegi, è saggio svuotare i privilegi per assicurarsi che tutte le modifiche siano immediatamente applicate: FLUSH PRIVILEGES;

Come Visualizzare Gli Utenti di un Database MySQL

Visualizzare tutti gli utenti nel tuo database MySQL è un modo utile per gestire e verificare gli account utente. Così saprai chi ha accesso al tuo database e quali sono i loro permessi.

Se sei familiare con i comandi MySQL, potresti pensare che esista un comando SHOW USERS — simile ai comandi SHOW DATABASES o SHOW TABLES che probabilmente conosci e usi già. Tuttavia, il comando SHOW USERS non esiste.

Come puoi vedere tutti i tuoi utenti del database? Segui questi passaggi.

  1. Accedi al server MySQL come utente root. Inserisci il seguente comando: mysql -u root -p.
  2. Inserisci la tua password di root per connetterti al server MySQL.
  3. MySQL memorizza le informazioni degli account utente nella tabella mysql.user. Per visualizzare tutti gli account utente, puoi eseguire la seguente query SQL per mostrare un elenco di tutti gli utenti e gli host da cui possono connettersi: SELECT user, host FROM mysql.user;
  4. Se hai bisogno di informazioni più dettagliate su ciascun utente, come i loro privilegi o altre impostazioni, puoi interrogare colonne aggiuntive dalla tabella mysql.user. Ad esempio: SELECT user, host, authentication_string, plugin FROM mysql.user;
  5. Per filtrare e visualizzare utenti specifici, puoi aggiungere una clausola WHERE alla tua query. Ad esempio, per visualizzare gli utenti che si connettono da localhost, usa: SELECT user, host FROM mysql.user WHERE host = 'localhost';

Gestione Degli Utenti Con DreamHost

Menù del pannello di controllo DreamHost che mostra opzioni che includono Home, Siti Web e Database MySQL evidenziati in blu.

Se l’idea di utilizzare gli strumenti da riga di comando ti sembra scoraggiante, il pannello DreamHost offre un’alternativa user-friendly per la gestione degli utenti MySQL.

Il Panel DreamHost è un’interfaccia basata sul web che semplifica le attività di gestione del database, quindi non devi usare prompt dei comandi.

Per tutorial dettagliati su come accedere al tuo database, aggiungere ed eliminare utenti, gestire i privilegi, e altro ancora, visita la nostra pagina della Base di conoscenza per i database MySQL.

Tablet che visualizza la pagina della Base di Conoscenza DreamHost su Database MySQL, con icone di bolle di chat, server e utenti intorno.

E se stai cercando un hosting gestito affidabile per il tuo sito web che non solo renda la gestione del database semplice con un pannello di controllo intuitivo, ma offra anche migrazione gratuita, supporto 24/7 e garanzie di uptime — hai bisogno di DreamHost.

Scopri i nostri piani di hosting convenienti e scopri perché milioni di persone e aziende ci scelgono!

Hosting Dedicato

Il Massimo in Potenza, Sicurezza e Controllo

I server dedicati di DreamHost utilizzano il miglior hardware e software disponibile per garantire che il tuo sito sia sempre online e sempre veloce.

Vedi di Più