Assegnare Ad Un Utente Permessi Di Amministrazione Su Un DataBase
Diamo ad un utente il privilegio di amministrare il DB che abbiamo creato per lui
al prompt di shell digitiamo mysql -u root -p
il server risponderà chiedendovi la password dell'utente root di MySQL/MariaDB
una volta digitata la password il server SQL mostrerà il suo prompt rimanendo in attesa
Your MariaDB connection id is 779
Server version: 10.5.9-MariaDB-1 Debian buildd-unstable
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
E' saggio verificare la presenza dell'utente che vogliamo promuovere ad amministratore di DB e la sua relazione attuale con il DB in oggetto
Verifichiamo l'esistenza del DB mio_user_db da far amministrare dall'utente mio_user
+--------------------+
| Database |
+--------------------+
| information_schema |
| mio_user_db |
| mysql |
| performance_schema |
+--------------------+
4 rows in set (0.108 sec)
Il server SQL ci mostra la presenza del DB mio_user_db (in caso contrario avremmo dovuto crearlo)
Procediamo quindi a verificare la presenza dell'utente
+-------------+-----------+
| User | Host |
+-------------+-----------+
| mio_user | % |
| mariadb.sys | localhost |
| mysql | localhost |
| root | localhost |
+-------------+-----------+
4 rows in set (0.003 sec)
L'utente che ci interessa promuovere mio_user è presente (in caso contrario avremmo dovuto crearlo), verifichiamo adesso a quali DB esso è già legato e quali permessi possiede
+---------------------------------------------------------------------------------------------------------+
| Grants for mio_user@% |
+---------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `mio_user`@`%` IDENTIFIED BY PASSWORD '*7C6CF6AE528FEEED1DA440E17EDFFF6DA934D32A' |
+---------------------------------------------------------------------------------------------------------+
1 row in set (0.000 sec)
Da questa query comprendiamo che sì l'utente non solo esiste ma che può accedere al server identificandosi con una password, ma esso non è legato a nessun DB esistente e ancor di più non ne può amministrare alcuno in alcun modo.
Agiamo quindi di conseguenza!
forniamo i permessi necessari ad mio_user affinché possa amministrare il db mio_user_db
MariaDB [(none)]>
Non è strettamente necessario, ma è buona norma, dopo una operazione di assegnazione dei privilegi, rinfrescare gli stessi con un FLUSH PRIVILEGES
MariaDB [(none)]>
Per verificare il buon esito delle operazioni appena svolte verifichiamo nuovamente i permessi di mio_user
+---------------------------------------------------------------------------------------------------------+
| Grants for mio_user@% |
+---------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `mio_user`@`%` IDENTIFIED BY PASSWORD '*7C6CF6AE528FEEED1DA440E17EDFFF6DA934D32A' |
| GRANT ALL PRIVILEGES ON 'mio_user_db'.* TO 'mio_user'@'%' |
+---------------------------------------------------------------------------------------------------------+
2 row in set (0.000 sec)
Adesso il server SQL ci mostra chiaramente che mio_user può amministrare il DB mio_user_db non rimane che uscire e tornare alla shell
Bye
#
ed il server SQL sempre educatamente ci saluta