economia news e media viaggi informatica internet salute e benessere int rattenimento e spettacolo sport tempo libero istruzio ne e formazione arte cultura scienza

Sicurezza

Sicurezza dei database (terza parte)

A cura di Andrea Silvestri

Pubblicato il 29/10/2001

I ruoli.

Un ruolo permette di raggruppare una serie di privilegi.
Viene concesso ad un utente, che quindi acquisisce tutti i privilegi presenti in esso, con l'istruzione GRANT:

GRANT nome_ruolo TO user [WITH ADMIN OPTION];

L'opzione consente all'utente, come per i privilegi, di concedere il ruolo ad altri.
La revoca avviene tramite la REVOKE:

REVOKE nome_ruolo FROM user;

In Oracle esistono tre ruoli predefiniti:

  • Connect: consente l'accesso al database.
  • Resource: racchiude i privilegi del precedente piu' la possibilita' di creare procedure, trigger ed indici.
  • Dba: racchiude tutti i privilegi.
I ruoli vengono creati tramite l'istruzione CREATE ROLE:

CREATE ROLE nomeruolo;

Quindi, ad esempio, per creare il ruolo magazzino dovremo digitare:

CREATE ROLE magazzino;

Questo nuovo ruolo non contiene privilegi, quindi e' ancora inutile. Dobbiamo concedere dei privilegi al ruolo, esattamente come si fa per gli utenti.
Ad esempio per concedere la select sulla tabella articoli al ruolo magazzino:

GRANT select ON articoli TO magazzino;

Una volta che tutti i privilegi sono stati concessi al ruolo, e' possibile concedere il ruolo a tutti gli utenti che hanno necessita' di possedere tali privilegi, nel nostro caso a tutti gli utenti magazzinieri. Anche in questo caso si utilizza la GRANT:

GRANT impiegato TO jack;

Il grosso vantaggio dell'utilizzo dei ruoli e' dato dal fatto che per concedere o revocare un nuovo privilegio a tutti i magazzinieri basta concederlo o revocarlo al ruolo. Inoltre per aggiungere un nuovo utente magazziniere basta creare un utente e concedergli il ruolo magazzino.
La REVOKE permette anche di rimuovere un privilegio da un ruolo:

REVOKE select ON articoli FROM magazzino;

L'eliminazione di un ruolo avviene utilizzando la DROP:
DROP ROLE magazzino;

Un corretto utilizzo dei ruoli facilita quindi notevolmente la gestione degli utenti di un database.

Vuoi essere aggiornato sulle novità della guida?

Feed RSS XML vostro feed RSS