Jezik za nadzor podatkov (DCL)

GRANT, REVOKE in DENY Database Permissions

Jezik za nadzor podatkov (DCL) je podrazdelek Structured Query Language (SQL) in skrbnikom baze podatkov omogoča konfiguracijo varnostnega dostopa do podatkovnih baz relacij. To dopolnjuje jezik za določanje podatkov (DDL), ki se uporablja za dodajanje in brisanje predmetov baze podatkov, jezik pa za manipulacijo s podatki (DML), ki se uporablja za nalaganje, vstavljanje in spreminjanje vsebine baze podatkov.

DCL je najpreprostejši od SQL podmnožic , saj vsebuje le tri ukaze: GRANT, REVOKE in DENY. V kombinaciji ti trije ukazi skrbnikom omogočajo, da določijo in odstranjujejo dovoljenja za baze podatkov v izjemno zrnatem načinu.

Dodajanje dovoljenj z ukazom GRANT

Ukaz GRANT administratorji uporabljajo za dodajanje novih dovoljenj uporabniku baze podatkov . Ima zelo preprosto sintakso, opredeljeno takole:

GRANT [privilegij] ON [predmet] TO [uporabnik] [z možnostjo dodelitve]

Tukaj je pregled vseh parametrov, ki jih lahko dobite s tem ukazom:

Predpostavite, na primer, da želite uporabniku Joeu omogočiti, da pridobi podatke iz tabele zaposlenih v podatkovni zbirki, imenovani HR. Lahko uporabite naslednji ukaz SQL:

DODELITE VELIKO NA HR.poslovne osebe TO Joe

Joe bo zdaj zmožen pridobiti podatke iz tabele zaposlenih. Vendar ne bo mogel drugim uporabnikom dovoliti, da pridobijo podatke iz te tabele, ker v stavku GRANT niste vključili klavzule WITH GRANT OPTION.

Preklic dostopa do baze podatkov

Ukaz REVOKE se uporablja za odstranitev dostopa do baze podatkov od uporabnika, ki je prej imel tak dostop. Sintaksa za ta ukaz je definirana kot sledi:

REVOKE [GRANT OPTION FOR] [dovoljenje] ON [predmet] FROM [user] [CASCADE]

Tukaj je popoln seznam parametrov za ukaz REVOKE:

Na primer, naslednji ukaz prekliče dovoljenje Joe v prejšnjem primeru:

REVOKE IZBERITE NA HR.employees FROM Joe

Izrecno zanikanje dostopa do baze podatkov

Ukaz DENY se uporablja za izrecno preprečitev, da uporabnik dobi posebno dovoljenje. To je koristno, če je uporabnik član vloge ali skupine, ki mu je dodeljeno dovoljenje, in želite posameznemu uporabniku preprečiti, da bi dala dovoljenje z ustvarjanjem izjeme. Sintaksa za ta ukaz je naslednja:

DENY [dovoljenje] ON [predmet] TO [uporabnik]

Parametri za ukaz DENY so enaki tistim, ki se uporabljajo za ukaz GRANT.

Če želite, na primer, če želite zagotoviti, da Matthew ne bi nikoli prejel možnosti za brisanje podatkov iz tabele zaposlenih, izdajte naslednji ukaz:

DENY DELETE NA HR.employees TO Matthew