Data Control Language
![](http://upload.wikimedia.org/wikipedia/commons/thumb/d/d6/1leftarrow_blue.svg/18px-1leftarrow_blue.svg.png)
In informatica il Data Control Language (DCL) è una parte del più esteso linguaggio SQL che comprende i costrutti necessari per fornire o revocare agli utenti i permessi necessari per poter utilizzare i comandi di Data Definition Language (DDL) e Data Manipulation Language, oltre agli stessi comandi DCL (che gli servono a sua volta per poter modificare i permessi su alcuni oggetti).
Descrizione
Create User, Alter User e Drop User
Lo standard SQL non specifica in quale modo debba essere possibile creare, eliminare o modificare gli utenti di un database. La maggior parte dei DBMS a tale scopo implementa i comandi non standard CREATE USER (che crea un utente e specifica quali permessi deve avere) e DROP USER (che elimina un utente). Per la modifica, alcuni DBMS implementano ALTER USER, ma non è un comando molto diffuso, mentre è più diffuso SET PASSWORD.
Grant
Il comando Grant fornisce uno o più permessi a un determinato utente su un determinato oggetto del database (es: il permesso di inserimento in una tabella).
Sintassi del comando Grant
GRANT ''privilegi'' ON ''oggetti'' TO { PUBLIC | ''nome_ddde'' [, ...] } [ WITH GRANT OPTION ]
- PUBLIC indica che il privilegio deve essere assegnato a tutti gli utenti, compresi quelli che verranno creati in seguito e ai quali non verrà espressamente negato.
- Se si specifica WITH GRANT OPTION, l'utente avrà la possibilità di assegnare gli stessi privilegi anche ad altri utenti, o eventualmente revocarli.
Revoke
Il comando Revoke revoca uno o più permessi a un determinato utente su un determinato tipo di oggetti (es: il permesso di cancellazione da una tabella).
Sintassi del comando Revoke
REVOKE [ GRANT OPTION FOR ] ''privilegi'' ON ''oggetto'' FROM { PUBLIC | ''nome_utente'' [, ...] } { RESTRICT | CASCADE }
- GRANT OPTION FOR specifica che non si intende eliminare il privilegio in sé, ma il diritto di un certo utente di accordare o revocare tale permesso ad altri.
- PUBLIC indica che il permesso viene revocato a tutti gli utenti, compresi quelli che verranno creati in futuro e ai quali non verrà espressamente garantito.
- CASCADE indica che bisogna eliminare gli oggetti ai quali nessun utente ha più il permesso di accedere. RESTRICT, che è il valore predefinito, indica che tali oggetti devono essere preservati.
Voci correlate
- SQL
- Data Definition Language (DDL)
- Data Manipulation Language (DML)
- Database
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/77/Computer_n_screen.svg/24px-Computer_n_screen.svg.png)