Come creare un utente e assegnare permessi su MySQL

Cerca

Amministrare MySQL via riga di comando non è per nulla spaventoso e se si conosce la sintassi puoi ottenere il risultato desiderato in molto rapido rispetto all’uso di una GUI.

Creare un utente MySQL

La prima cosa da fare è collegarsi alla cli di MySQL usando un account con sufficienti permessi. In questo tutorial useremo l’account root.

Digitare quindi il seguente comando seguito dalla password quando richiesto

				
					mysql -u root -p
				
			

Una volta collegati al prompt di MySQL utilizzare una delle seguenti query, personalizzandola con nome utente e host desiderato.

Utente con autenticazione via auth_socket plugin

Questo plugin richiede che il nome utente a livello di Sistema Operativo che invoca la cli di MySQL coincida con il nome dell’utente MySQL.

				
					CREATE USER 'alessandro'@'localhost' IDENTIFIED WITH authentication_plugin BY 'my-strong-password';
				
			

Questo metodo di autenticazione permette un ottimo livello di sicurezza, senza richiedere all’utente di inserire la sua password al momento dell’autenticazione. Tuttavia non permette connessioni remote al DB, il che può essere non adatto quando programmi esterni hanno bisogno di interagire con MySQL.

Utente con autenticazione via caching_sha2_password

Per un’autenticazione utente mediante password via caching_sha2_password plugin.

				
					CREATE USER 'alessandro'@'localhost' IDENTIFIED BY 'my-strong-password';
				
			
Utente con autenticazione via mysql_native_password

Se si vuole creare un utente che si autentichi attraverso il vecchio, ma comunque sicuro, mysql_native_password plugin, utilizziamo la seguente query

				
					CREATE USER 'alessandro'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my-strong-password';
				
			

Questo metodo è consigliato nel caso la propria applicazione sia scritta in PHP. Ci sono infatti problemi noti di compatibilità tra il metodo di autenticazione caching_sha2_password ed alcune versioni di PHP.

Nel caso si può creare l’utente con autenticazione caching_sha2_password e nel caso di problemi modificarne il metodo di autenticazione con questa query

				
					ALTER USER 'alessandro'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my-strong-password';
				
			

Assegnare permessi ad un utente MySQL

I privilegi, o permessi, definiscono quali azioni sono permesse ad un utente su uno specifico database o tabella. Si possono assegnare con un unico comando molteplici permessi, separando ognuno con una virgola.

				
					GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'alessandro'@'localhost';
				
			

Nel caso si vogliano assegnare permessi da super user ad un utente possiamo utilizzare la seguente query

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

Per assegnare permessi ad una specifica tabella di uno specifico database si utilizza una sintassi simile alla seguente

				
					GRANT ALL PRIVILEGES ON mytable.mydatabase TO 'alessandro'@'localhost';
				
			

Seppur non necessaria in questo scenario, questa query permette di ricaricare in memoria i permessi utente modificati

				
					FLUSH PRIVILEGES;
				
			

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Most Recent

Come aggiornare mailcow

In questo scenario viene illustrato come eseguire l’aggiornamento di un’istanza di mailcow dockerized utilizzando i tools in esso integrati. Aggiornamento automatico Nella directory di mailcow-dockerized

Partners