Limbajul de control al datelor (DCL)

GRANT, REVOKE și DENY Permisiuni baze de date

Limbajul de control al datelor (DCL) este un subset al limbii structurate de interogare (SQL) și permite administratorilor de baze de date să configureze accesul la securitatea bazelor de date relaționale. Acesta completează limbajul de definiție a datelor (DDL), care este folosit pentru a adăuga și șterge obiecte de bază de date, și Limbajul de manipulare a datelor (DML) folosit pentru a prelua, introduce și modifica conținutul unei baze de date.

DCL este cel mai simplu dintre subseturile SQL , deoarece constă din trei comenzi: GRANT, REVOKE și DENY. Combinate, aceste trei comenzi oferă administratorilor flexibilitatea de a seta și elimina permisiunile bazei de date într-o manieră extrem de granulară.

Adăugarea permisiunilor cu comanda GRANT

Comanda GRANT este utilizată de administratori pentru a adăuga noi permisiuni unui utilizator bazei de date . Are o sintaxă foarte simplă, definită după cum urmează:

GRANT [privilegiu] ON [obiect] TO [utilizator] [CU GRANT OPTION]

Iată rezumatul fiecărui parametru pe care îl puteți furniza cu această comandă:

De exemplu, presupuneți că doriți să acordați utilizatorului Joe abilitatea de a prelua informații din tabelul angajaților într-o bază de date numită HR. S-ar putea să utilizați următoarea comandă SQL:

SELECTAREA GRANTULUI PE HR.employees TO Joe

Joe va avea acum posibilitatea de a prelua informații de la masa angajaților. Cu toate acestea, el nu va putea acorda altor utilizatori permisiunea de a prelua informații din tabelul respectiv deoarece nu ați inclus clauza WITH GRANT OPTION în instrucțiunea GRANT.

Revocarea accesului la baze de date

Comanda REVOKE este utilizată pentru a elimina accesul bazei de date de la un utilizator care a primit anterior un astfel de acces. Sintaxa pentru această comandă este definită după cum urmează:

REVOKE [OPORT DE GRANT PENTRU] [permisiune] ON [obiect] FROM [utilizator] [CASCADE]

Iată rezumatul parametrilor comenzii REVOKE:

De exemplu, următoarea comandă revocă permisiunea acordată lui Joe în exemplul anterior:

REVOKE SELECT pe HR.employees FROM Joe

Refuzarea explicită a accesului la baze de date

Comanda DENY este utilizată pentru a împiedica în mod explicit un utilizator să primească o anumită permisiune. Acest lucru este util atunci când un utilizator este membru al unui rol sau al unui grup căruia i sa acordat o permisiune și doriți să împiedicați acest utilizator individual să moștenească permisiunea creând o excepție. Sintaxa pentru această comandă este după cum urmează:

DENY [permisiune] ON [obiect] la [utilizator]

Parametrii comenzii DENY sunt identici cu cei utilizați pentru comanda GRANT.

De exemplu, dacă doriți să vă asigurați că Matthew nu va primi niciodată posibilitatea de a șterge informații din tabelul angajaților, lansați următoarea comandă:

DENY DELETE pe HR.employees TO Matthew