Andmekontrolli keel (DCL)

GRANT, REVOKE ja DENY andmebaasi õigused

Andmekontrolli keel (DCL) on struktureeritud päringuliigi (SQL) alamhulk ja võimaldab andmebaasi haldajatel konfigureerida turvalisuse juurdepääsu relatsioonandmebaasidele. See täiendab andmebaasiobjektide lisamiseks ja kustutamiseks kasutatavat andmeelementide keelt (DDL) ja andmebaasi sisu allalaadimiseks, sisestamiseks ja muutmiseks kasutatavat andmehalduse keelt (DML).

DCL on kõige lihtsam SQL alamhulk , kuna see koosneb ainult kolmest käsklusest: GRANT, REVOKE ja DENY. Kombineeritult annavad need kolm käsklusi administraatoritele paindlikkust, et määrata ja eemaldada andmebaasi õigused väga üksikasjalikult.

Lubade lisamine GRANTi käsuga

GRANTi käsku kasutavad administraatorid, et lisada andmebaasi kasutajale uusi õigusi. Sellel on väga lihtne süntaks, mis määratletakse järgmiselt:

GRANT [privilege] ON [objekt] TO [kasutaja] [WITH GRANT OPTION]

Siin on kõik parameetrid, mida saate selle käsuga anda:

Näiteks oletame, et soovite anda kasutajale Joe võime hankida teavet töötajate tabelist andmebaasis, mille nimi on HR. Võite kasutada järgmist SQL-käsku:

KASUTAGE SELLE JUHT HR töötajatele

Joe saab nüüd võimaluse saada teavet töötajate tabelist. Siiski ei saa ta anda teistele kasutajatele luba sellelt tabelilt teabe hankimiseks, kuna te ei lisanud GRANTi avalduses loendit WITH GRANT OPTION.

Andmebaasiühenduse tühistamine

REVOKE-käsku kasutatakse andmebaasi juurdepääsu eemaldamiseks kasutaja poolt, kellele varem selline juurdepääs võimaldati. Selle käsu süntaks on määratletud järgmiselt:

TÜHISTAMINE [VÕISTLUSVÕIMALUS] [luba] ON [objekt] FROM [kasutaja] [CASCADE]

Siin on juhised REVOKE parameetrite kohta:

Näiteks tühistab järgmine käsk eelmises näites Joe'ile antud luba:

TÜHISTAMINE SELLE JUHTIMISEL

Andmebaasijuurdepääsu otsene keelamine

Käsku DENY kasutatakse selleks, et selgesõnaliselt takistada kasutajal konkreetse loa saamist. See on kasulik siis, kui kasutaja on loa andnud rühma või rühma liige ning te ei soovi, et see üksikkasutaja loobuks erandi loomisest. Selle käsu süntaks on järgmine:

DENY [luba] ON [objekt] TO [kasutaja]

Käsu DENY parameetrid on identsed GRANTi käskluse jaoks kasutatavate parameetritega.

Näiteks, kui soovite tagada, et Matthew ei saaks kunagi teavet töötajate laua kustutamise kohta, andke järgmine käsk:

Tühista töölt Matteusele