Assegnare Ad Un Utente Permessi Di Amministrazione Su Un DataBase

Da ElettraWiki.
Versione del 12 mag 2021 alle 23:54 di Skid (discussione | contributi)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Diamo ad un utente il privilegio di amministrare il DB che abbiamo creato per lui
al prompt di shell digitiamo mysql -u root -p

# mysql -u root -p

il server risponderà chiedendovi la password dell'utente root di MySQL/MariaDB

Enter password:

una volta digitata la password il server SQL mostrerà il suo prompt rimanendo in attesa

Welcome to the MariaDB monitor. Commands end with ; or \g.

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.

MariaDB [(none)]>

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

MariaDB [(none)]> SHOW DATABASES;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mio_user_db        |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.108 sec)

MariaDB [(none)]>

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

MariaDB [(none)]> SELECT User, Host FROM mysql.user;

+-------------+-----------+
| User        | Host      |
+-------------+-----------+
| mio_user    | %         |
| mariadb.sys | localhost |
| mysql       | localhost |
| root        | localhost |
+-------------+-----------+
4 rows in set (0.003 sec)

MariaDB [(none)]>

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

MariaDB [(none)]> SHOW GRANTS FOR 'mio_user'@'%';

+---------------------------------------------------------------------------------------------------------+
| Grants for mio_user@%                                                                                   |
+---------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `mio_user`@`%` IDENTIFIED BY PASSWORD '*7C6CF6AE528FEEED1DA440E17EDFFF6DA934D32A' |
+---------------------------------------------------------------------------------------------------------+
1 row in set (0.000 sec)

MariaDB [(none)]>

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)]> GRANT ALL ON mio_user_db.* TO 'mio_user'@'%';
MariaDB [(none)]>

Non è strettamente necessario, ma è buona norma, dopo una operazione di assegnazione dei privilegi, rinfrescare gli stessi con un FLUSH PRIVILEGES

MariaDB [(none)]> FLUSH PRIVILEGES;

MariaDB [(none)]>

Per verificare il buon esito delle operazioni appena svolte verifichiamo nuovamente i permessi di mio_user

MariaDB [(none)]> SHOW GRANTS FOR '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)

MariaDB [(none)]>

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

MariaDB [(none)]> exit

Bye
#

ed il server SQL sempre educatamente ci saluta