Diritti e privilegi degli utenti MySQL nel pannello di controllo dell'hosting
Descrizione della procedura per assegnare i permessi agli utenti MySQL nel pannello di controllo cPanel.
Database (MySQL) è un'entità per l'archiviazione di informazioni sotto forma di tabelle. Affinché i database altrui non siano accessibili a qualsiasi utente del server, esiste un sistema di utenti per questi database. L'accesso a un database può essere assegnato dall'amministratore (o da un utente autorizzato) a un altro utente, e può essere completo o parzialmente limitato.
Tutti i dati nei database vengono archiviati sotto forma di tabelle collegate logicamente tra loro, a cui si accede tramite il linguaggio di query SQL. MySQL è un sistema a distribuzione libera, ovvero non è necessario pagare per utilizzarlo. È inoltre un DBMS rapido, affidabile e, soprattutto, semplice da usare, perfettamente adatto a progetti di dimensioni non troppo grandi.
Privilegi per gli utenti MySQL
Di seguito sono elencati i privilegi disponibili nel DBMS MySQL, con la relativa descrizione. Gli ultimi privilegi sono di livello amministratore e sono indicati esplicitamente solo a scopo informativo. Informazioni complete sui diritti/privilegi sono disponibili nella documentazione per sviluppatori di MySQL:
CREATE — consente di creare nuovi database e tabelle
DROP — consente di eliminare database o tabelle
INSERT — consente di aggiungere righe a una tabella.
UPDATE — consente di modificare il contenuto delle righe di una tabella. Da non confondere con ALTER, che consente di modificare la struttura della tabella stessa (numero di righe/colonne, tipi di colonne).
DELETE — l'opposto di INSERT — consente di eliminare righe da una tabella.
ALTER — consente di modificare la struttura di una tabella. Richiede i privilegi CREATE e INSERT.
SELECT — consente la lettura (visualizzazione delle righe) dalle tabelle tramite selezioni per colonne e/o per criteri aritmetici e logici.
GRANT OPTION — consente di assegnare (o revocare) diritti specifici a un determinato utente. È possibile concedere/revocare solo i diritti di cui dispone l'assegnante stesso.
LOCK TABLES — blocca la tabella durante le modifiche manuali (amministrazione), in modo che i dati al suo interno non possano cambiare nel normale flusso di lavoro.
REFERENCES — consente di creare collegamenti tra tabelle tramite una chiave esterna.
EVENT — assegna il diritto di creare/modificare/eliminare attività per lo scheduler
TRIGGER — consente di creare/modificare/eliminare trigger (collegati a determinate tabelle) che eseguono azioni aggiuntive durante le operazioni DELETE, UPDATE o INSERT.
INDEX — il privilegio assegna il diritto di aggiungere/rimuovere indici alle (dalle) tabelle. Gli indici vengono assegnati manualmente e consentono di risparmiare tempo nella ricerca delle righe.
CREATE TEMPORARY TABLES — consente di creare tabelle temporanee per la durata della sessione.
CREATE VIEW — consente di creare una vista sotto forma di tabella che non esiste fisicamente come entità singola e contiene solo dati provenienti da altre tabelle. Ad esempio, in questa vista è possibile raccogliere determinati dati raggruppati da tre tabelle (tramite l'operatore SELECT); di fatto i dati raccolti faranno riferimento solo ai dati di queste 3 tabelle e costituiranno un'unione che non necessita di una propria tabella.
SHOW VIEW — consente di verificare con quale query (da quali dati è composta) è stata creata una determinata vista definita con CREATE VIEW
CREATE ROUTINE — consente di creare una procedura, ovvero un insieme di comandi SQL.
ALTER ROUTINE — consente di modificare una procedura creata con CREATE ROUTINE.
EXECUTE — consente di richiamare le procedure già predisposte.
FILE — fornisce accesso in lettura a qualsiasi file sul server a cui MySQL stesso ha accesso, e accesso alla creazione di file nelle directory in cui MySQL dispone di permessi di scrittura.
CREATE TABLESPACE (admin) — consente di creare/modificare/eliminare tablespace. Questo spazio è di natura logica e non è correlato alla struttura del database o allo schema. Definisce la posizione degli oggetti del database sui supporti fisici e viene utilizzato per ottimizzare il sistema del database.
CREATE USER (admin) — consente di creare/modificare/rinominare/eliminare gli utenti del database.
PROCESS (admin) — consente l'accesso alle informazioni sui thread (processi) in esecuzione sul server.
PROXY (admin) — consente di accedere come un altro utente. Viene utilizzato dall'amministratore per verificare/testare i diritti di accesso dell'utente desiderato.
RELOAD (admin) — consente l'utilizzo dell'operatore FLUSH, che pulisce la cache di MySQL
REPLICATION CLIENT (admin) — consente di eseguire SHOW MASTER STATUS, SHOW SLAVE STATUS e SHOW BINARY LOG.
REPLICATION SLAVE (admin) — questo privilegio è necessario agli utenti del server database slave affinché il server possa connettersi al server master come slave. Senza questo privilegio, i server slave non potranno richiedere aggiornamenti di database e tabelle al server master.
SHOW DATABASES (admin) — consente l'esecuzione dell'istruzione SHOW DATABASES. Gli utenti privi di questo privilegio potranno visualizzare solo i database per i quali dispongono di qualche diritto.
SHUTDOWN (admin) — questo privilegio consente di eseguire l'istruzione SHUTDOWN, che arresta il server MySQL.
SUPER (admin) — privilegio che assegna il diritto a numerose operazioni:
- consente di terminare processi appartenenti ad altri utenti
- modificare variabili di sistema globali
- attivare/disattivare il logging
- eseguire aggiornamenti anche quando è impostata la sola lettura per le variabili di sistema
- avviare/arrestare la replica sui server slave
ALL (admin) — all'utente che ottiene questo privilegio vengono assegnati automaticamente tutti i diritti nell'ambito del livello di privilegio (tutti i privilegi possibili, secondo il contesto di concessione). In questo caso non viene assegnato solo il privilegio GRANT OPTION.
Assegnazione dei privilegi agli utenti MySQL nel pannello di controllo
Dalla pagina principale di cPanel, vai in «Database → Database MySQL»:

Tutte le operazioni con i database MySQL, gli utenti del database e i relativi permessi vengono eseguite in questo menu.

Se non hai ancora un database o un utente, creali nelle sezioni apposite della pagina:
Crea un utente:

La sezione Utenti correnti verrà aggiornata:

Per assegnare i permessi a un determinato utente su un determinato database, trova la sezione Aggiungi utente al database nella pagina e aggiungi l'utente desiderato al database desiderato:

Dopo aver aggiunto l'utente al database, si aprirà una finestra di dialogo per l'assegnazione dei privilegi:

Il pulsante «Tutti i diritti» è equivalente al privilegio ALL descritto all'inizio di questa guida e assegnerà all'utente tutti i diritti possibili nel contesto della sua appartenenza a un determinato gruppo di utenti a livello dell'intero server MySQL.
Dopo aver confermato le modifiche, verrai reindirizzato alla pagina di conferma dell'assegnazione dei diritti specificati, e la sezione Database correnti nella pagina di gestione dei database e degli utenti MySQL verrà aggiornata:

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