Datu kontroles valoda (DCL)

GRANT, REVOKE un DENY datu bāzes atļaujas

Datu kontroles valoda (DCL) ir Structured Query Language (SQL) apakšgrupa un ļauj datu bāzes administratoriem konfigurēt drošības piekļuvi relāciju datubāzēm. Tas papildina datu definēšanas valodu (DDL), ko izmanto, lai pievienotu un izdzēstu datu bāzes objektus, un datu manipulācijas valodu (DML), ko izmanto datubāzes satura ielādēšanai, ievietošanai un modificēšanai.

DCL ir vienkāršākais no SQL apakšgrupām , jo tas sastāv tikai no trim komandām: GRANT, REVOKE un DENY. Apvienojot šīs trīs komandas, administratori var elastīgi noteikt un noņemt datu bāzu atļaujas ārkārtīgi detalizētā veidā.

Atļaujas pievienošana ar GRANT komandu

GRANT komandu izmanto administratori, lai pievienotu jaunas atļaujas datu bāzes lietotājam . Tam ir ļoti vienkāršs sintakse, kas definēts šādi:

GRANT [privilēģija] ON [object] TO [user] [WITH GRANT OPTION]

Tālāk ir aprakstīts katrs parametrs, ko varat piegādāt ar šo komandu:

Piemēram, pieņemsim, ka vēlaties piešķirt lietotājam Joe iespēju atgūt informāciju no darbinieku tabulas datubāzē ar nosaukumu HR. Jūs varētu izmantot šādu SQL komandu:

PIEVIENOTIES uz HR.employees TO Joe

Joe tagad varēs iegūt informāciju no darbinieku galda. Tomēr viņš nevarēs piešķirt citiem lietotājiem atļauju iegūt informāciju no šīs tabulas, jo jūs GRANT paziņojumā neiekļāva klauzulu AR GRANT OPTION.

Atcelt piekļuvi datubāzei

REVOKE komanda tiek izmantota, lai noņemtu pieeju datubāzei no lietotāja, kas iepriekš ir piešķīrusi šādu piekļuvi. Šīs komandas sintakse ir definēta šādi:

REVOKE [PIEŠĶIRŠANAS VEIDS] [atļauja] ON [object] FROM [user] [CASCADE]

Tālāk ir aprakstīts par REVOKE komandas parametriem:

Piemēram, šāda komanda atceļ atļauju, kas piešķirta Joe iepriekšējā piemērā:

Atcelt izvēli HR.employees NO Joe

Skaidri liedzot piekļuvi datu bāzei

DENY komanda tiek izmantota, lai skaidri aizliegtu lietotājam saņemt konkrētu atļauju. Tas ir noderīgi, ja lietotājs ir kādas lomas vai grupas dalībnieks, kuram piešķirta atļauja, un jūs vēlaties, lai šis atsevišķais lietotājs netiktu mantojis atļauju, izveidojot izņēmumu. Šīs komandas sintakse ir šāda:

DENY [atļauja] ON [object] TO [user]

DENY komandas parametri ir identiski tiem, kurus izmanto GRANT komandai.

Piemēram, ja jūs vēlētos nodrošināt, ka Matthew nekad nesaņems iespēju dzēst informāciju no darbinieku galda, izdod šādu komandu:

PĀRŅEMTA ATBRĪVO HR darbinieci Mateju