Subito dopo aver installato MySQL, avrai la root
utente disponibile.
Questo è l'utente che potresti usare per provare a vedere se MySQL funziona, ma non dovrebbe essere l'utente per altri tipi di utilizzo.
Come mai? Perché è troppo potente .
Da un grande potere derivano grandi responsabilità (ha detto lo zio di Spider-Man). E in particolare, grande pericolo se commetti errori.
Invece, dovresti creare utenti ad hoc che dispongono solo delle autorizzazioni per svolgere il loro lavoro e non di più. Lo stesso vale per l'utilizzo di Linux o di qualsiasi sistema Unix, ad esempio:non si desidera utilizzare il root
utente, ma il tuo account utente.
Per creare un nuovo utente, connettiti a MySQL usando la root
utente:
mysql -u root -p
quindi usa il comando
CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';
Ad esempio, per creare un utente denominato test_user
con password test_password12A
esegui il comando:
CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'test_password12A';
Il comando dovrebbe restituire una riga che dice Query OK, 0 rows affected (X.XX sec)
:
Se hai utilizzato una password non valida, il sistema ti direbbe qualcosa come ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
. In questo caso l'errore dice che la password non è abbastanza complessa, perché quando ho installato MySQL gli ho detto di usare una certa policy sulle password.
È fantastico! Ora l'utente è stato creato e possiamo connetterci usando quell'utente a MySQL. Dalla riga di comando puoi uscire digitando QUIT
e digitando:
mysql -u test_user -p
Ora, se provo a creare un database, otterrei un errore che dice ERROR 1044 (42000): Access denied for user 'test_user'@'localhost' to database 'testing'
:
Come mai? Perché l'utente non dispone dell'autorizzazione per creare un nuovo database .
Vedremo come lavorare con le autorizzazioni in un altro tutorial.
Vale la pena menzionare il @'localhost'
stringa che abbiamo usato per creare l'utente. Questo dice a MySQL che l'utente può connettersi solo da localhost. Il che va bene quando si testano le cose e quando qualsiasi applicazione che si collegherà a MySQL è in esecuzione sullo stesso computer che esegue il DBMS.
Quando ciò non è vero, devi inserire manualmente l'IP da cui l'utente si connetterà o utilizzare il %
carattere jolly:
CREATE USER 'test_user'@'%' IDENTIFIED BY 'test_password12A';
Voglio chiudere questo tutorial mostrando come rimuovere l'utente che abbiamo creato:
DROP USER 'test_user'@'localhost';