Llenguatge de control de dades (DCL)

Permisos de bases de dades de subvencions, revocacions i DENY

El llenguatge de control de dades (DCL) és un subconjunt del llenguatge de consulta estructurada (SQL) i permet als administradors de la base de dades configurar l'accés de seguretat a bases de dades relacionals. Complementa el llenguatge de definició de dades (DDL), que s'utilitza per afegir i eliminar objectes de base de dades, i el llenguatge de manipulació de dades (DML) utilitzat per recuperar, inserir i modificar els continguts d'una base de dades.

DCL és el més simple dels subconjunts de SQL , ja que només consta de tres ordres: CONCESSIÓ, REVOCA i DENY. Combinats, aquests tres comandaments proporcionen als administradors la flexibilitat per establir i eliminar els permisos de la base de dades d'una manera extremadament granular.

Addició de permisos amb el comandament GRANT

La comanda GRANT és utilitzada pels administradors per afegir nous permisos a un usuari de la base de dades . Té una sintaxi molt simple, definida de la següent manera:

CONCESSIÓ [privilegi] ON [object] TO [usuari] [AMB OPCIÓ DE SUBIDA]

Aquí teniu el resum de cadascun dels paràmetres que podeu proporcionar amb aquesta comanda:

Per exemple, suposem que voleu concedir a l'usuari Joe la possibilitat de recuperar informació de la taula d'empleats en una base de dades anomenada HR. Podeu utilitzar la següent comanda SQL:

SELECCIONAR LA SUBVENCIÓ A HR.employees TO Joe

Joe ara tindrà la capacitat de recuperar informació de la taula dels empleats. No obstant això, no podrà concedir permís a altres usuaris per recuperar informació d'aquesta taula perquè no incloïa la clàusula WITH WITHOUT GRANT OPTION a la declaració GRANT.

Revocació de l'accés a bases de dades

La comanda REVOKE s'utilitza per eliminar l'accés a la base de dades d'un usuari anteriorment concedit. La sintaxi per a aquesta comanda es defineix de la manera següent:

REVOKE [GRANT OPTION FOR] [permís] ON [object] FROM [usuari] [CASCADE]

Aquí teniu el resum dels paràmetres de la comanda REVOKE:

Per exemple, el següent comandament revoca el permís concedit a Joe en l'exemple anterior:

REVOCA SELECCIONA A HR.employees FROM Joe

Excloent explícitament l'accés a la base de dades

L'ordre DENY s'utilitza per impedir explícitament que un usuari rebi un permís particular. Això és útil quan un usuari és membre d'un rol o grup al qual se li atorga un permís, i voleu impedir que aquest usuari herede el permís creant una excepció. La sintaxi d'aquesta comanda és la següent:

DENY [permission] ON [object] TO [user]

Els paràmetres de la comanda DENY són idèntics als utilitzats per a la comanda GRANT.

Per exemple, si voleu assegurar-se que Matthew mai no rebrà la capacitat d'eliminar informació de la taula dels empleats, emet el següent comandament:

DENY DELETE ON HR.employees TO Matthew