MySQL Gestire utenti e permessi

MySQL Gestire utenti e permessi : in questa lezione vedremo come creare nuovi utenti per il database e come gestire i loro permessi in base al ruolo che dovranno avere.

Creare un utente

Possiamo creare un utente attraverso diverse modalità, direttamente dalla shell di MySQL o da una GUI per MySQL questa può essere una web app come phpMyAdmin o un programma desktop come MySQL Workbench o DataGrip

La prima cosa che dovremmo fare è fare il login al DBMS

shell MySQL

Per fare il login nella shell di MySQL utilizziamo il comando mysql seguito dai parametri che ci servono, nel seguente esempio indichiamo la porta, l’host, l’utente la password ed il database

mysql --port=3306 --host=localhost --user=myname --password=password mydb

Nota che il valore dei parametri varia in base alla tua configurazione, nel mio caso, utilizzando il software MAMP, la porta per il server MySQL è la 8889.

Se ti serve fare il setup da sviluppatore ti consiglio questo mio articolo: Setup per lo sviluppo software.

Per creare un utente ti basterà digitare il seguente codice MySQL

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

dove ovviamente sostituirai username e password con i loro reali valori

phpMyAdmin

nel caso di phpMyAdmin il login è automatico siccome probabilmente è stato configurato automaticamente da XAMPP o MAMP

Anche in questa web app puoi scrivere il comando SQL nella apposita sezione

comando SQL CREATE USER
comando SQL CREATE USER

oppure puoi utilizzare il menu Account utenti e fare click sulla voce Aggiungi account utente

Aggiungi account utente in phpMyAdmin
Aggiungi account utente in phpMyAdmin

di seguito basta inserire i dati del nuovo utente, ti consiglio di fare generare la password e poi salvartela

Genera password di phpMyAdmin
Genera password di phpMyAdmin

Assegnazione dei permessi

Dopo che hai creato un utente devi sapere che di default non dispone di nessun privilegio di accesso e di modifica del database. Dovrai assegnare i permessi e con quali database e tabelle può interagire.

La sintassi del comando MySQL è la seguente

GRANT permission ON database.tabella TO 'username' ON @'localhost'

Tipi di permessi MySQL

ALL PRIVILEGESconsente l’accesso completo al database
CREATEconcede all’utente di creare nuovi database e tabelle
DROPconsente all’utente di cancellare database e tabelle
DELETEconcede all’utente di cancellare record dalle tabelle
INSERTconsente all’utente di inserire record nelle tabelle
SELECTconcede all’utente di interrogare i database per leggerne il contenuto
UPDATEconsente all’utente di modificare i record presenti nelle tabelle
GRANT OPTIONconcede all’utente di aggiungere o rimuovere privilegi ad altri utenti
tabella di alcuni permessi MySQL

Esempi di assegnazione permessi

Passiamo ora ad alcuni esempi:

Per concedere il permesso di interrogare tutte le tabelle del database Videoteca all’utente username

GRANT SELECT ON Videoteca.* TO 'username'@'localhost';

Se vogliamo concedere ad un utente di inserire e modificare i record della tabella films del del database Videoteca

GRANT INSERT,UPDATE ON Videoteca.films TO 'username'@'localhost';

Affinché l’utente abbia l’accesso completo all’interno del server MySQL

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

Infine, terminate la o le operazioni di GRANT è necessario aggiornare i privilegi con il seguente comando

FLUSH PRIVILEGES;

Revocare i permessi

In maniera del tutto analoga possiamo revocare i permessi ad uno specifico utente con il comando REVOKE la sua sintassi è

REVOKE permissions ON database.tabella FROM 'username'@'localhost''

Eliminare un utente

Per eliminare un utente e quindi non permettergli più di accedere al DBMS utilizza il comando DROP USER nel seguente modo

DROP USER 'username'@'localhost'

Assegnazioni permessi da GUI di phpMyAdmin

Come abbiamo visto prima phpMyAdmin ci permette di gestire gli utenti tramite interfaccia grafica, nella stessa schermata dove inseriamo i dati, del nuovo utente, possiamo anche scegliere quali permessi condergli

scheda privilegi di phpMyAdmin
scheda privilegi di phpMyAdmin

Pubblicato da Carlo Contardi

Carlo Contardi, docente di informatica e sviluppatore Full Stack, condivide la sua passione per la programmazione e l’informatica attraverso il suo blog Space Coding. Offre preziosi consigli e soluzioni pratiche a chi vuole imparare a programmare o migliorare le proprie abilità. 🚀👨‍💻

Translate »