This is a read-only copy of the MariaDB Knowledgebase generated on 2024-12-22. For the latest, interactive version please visit https://mariadb.com/kb/.

Informazioni sui ruoli

MariaDB starting with 10.0.5

I ruoli sono stati introdotti in MariaDB 10.0.5.

I ruoli legano insieme un certo numero di privilegi. Aiutano le grandi organizzazioni dove, generalmente, un certo numero di utenti dispone degli stessi privilegi e, precedentemente, l'unico modo per modificare i privilegi di un gruppo di utenti era modificarli individualmente.

In alternativa, è possibile assegnare a più persone lo stesso utente, ma in questo modo non è possibile vedere quale utente è effettivamente responsabile di una certa azione.

Con i ruoli, l'amministrazione è più semplice. Per esempio, ad alcuni utenti potrebbe essere assegnato un ruolo giornalista, con gli stessi privilegi. Per modificare i diritti dei giornalisti sarà sufficiente modificare i privilegi del ruolo, mente i singoli utenti sono ancora legati ad ogni cambiamento da loro effettuato.

Per creare i ruoli si usa l'istruzione CREATE ROLE e per eliminarli si usa DROP-ROLE. E' possibile assegnarli agli utenti tramite un'estensione dell'istruzione GRANT, mentre i permessi possono essere assegnati con una normale GRANT. Similarmente, con REVOKE è possibile revocare un ruolo ad un utente, o revocare un permesso da un ruolo.

Una volta coonnesso, un utente può attivare un ruolo con l'istruzione SET ROLE, mentre la funzione CURRENT_ROLE restituisce il ruolo attivo per la sessione corrente, se esiste.

I ruoli sono stati implementati come progetto di GSoC 2013 da Vicentiu Ciorbaru.

Esempi

Creare un ruolo e assegnare un permesso:

CREATE ROLE journalist;

GRANT SHOW DATABASES ON *.* TO journalist;

GRANT journalist to hulda;

L'utente hulda imposta un ruolo per la sessione corrente per poter acquisire i permessi:

SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
+--------------------+

SELECT CURRENT_ROLE;
+--------------+
| CURRENT_ROLE |
+--------------+
| NULL         |
+--------------+

SET ROLE journalist;

SELECT CURRENT_ROLE;
+--------------+
| CURRENT_ROLE |
+--------------+
| journalist   |
+--------------+

SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| ...                |
| information_schema |
| mysql              |
| performance_schema |
| test               |
| ...                |
+--------------------+

SET ROLE NONE;

Altre risorse

Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.