Duomenų valdymo kalba (DCL)

GRANT, REVOKE ir DENY duomenų bazės leidimai

Duomenų valdymo kalba (DCL) yra struktūrizuotos užklausos kalbos (SQL) pogrupis ir leidžia duomenų bazių administratoriams konfigūruoti prieigą prie reliacinių duomenų bazių. Tai papildo duomenų apibrėžimo kalbą (DDL), kuri naudojama duomenų bazių objektams pridėti ir ištrinti, ir duomenų manipuliavimo kalbą (DML), naudojamą duomenų bazės turinio atkūrimui, įterpimui ir keitimui.

DCL yra paprasčiausias iš SQL pogrupių , nes jis susideda tik iš trijų komandų: GRANT, REVOKE ir DENY. Sujungus šias tris komandas, administratoriams suteikiama lanksti galimybė nustatyti ir pašalinti duomenų bazių leidimus.

Prenumeratos pridėjimas naudojant GRANT komandą

GRANT komandą naudoja administratoriai, norėdami pridėti naujus leidimus duomenų bazės naudotojui . Jis turi labai paprastą sintaksę, apibrėžiamą taip:

GRANT [privilegija] ON [objektas] TO [naudotojas] [su galimybe suteikti]

Štai keletas parametrų, kuriuos galite pateikti naudodami šią komandą:

Pavyzdžiui, daroma prielaida, kad norite suteikti vartotojui Joe galimybę paimti informaciją iš darbuotojų lentelės duomenų bazėje, vadinamos HR. Galite naudoti šią SQL komandą:

DALYVAVI PASIRINKTI HR.darbininkus Joe

Joe dabar galės išgauti informaciją iš darbuotojų lentelės. Tačiau jis negalės suteikti kitiems naudotojams leidimo gauti informacijos iš šios lentelės, nes GRANT pareiškime neįtraukėte SUBJEKTO SU GRANT OPTION.

Atšaukti prieigą prie duomenų bazės

REVOKE komanda naudojama pašalinti prieigą prie duomenų bazės iš anksčiau tokios prieigos suteikto vartotojo. Šios komandos sintaksė apibrėžiama taip:

ATKŪRIMAS [DOTACIJOS OPACIJA] [leidimas] ON [objektas] FROM [user] [CASCADE]

Štai parašyta apie REVOKE komandą parametrus:

Pavyzdžiui, ši komanda atšaukia Joe suteiktą leidimą ankstesniame pavyzdyje:

ATŠAUKTI PASIRINKTI HR.darbininkus iš Jo

Aiškiai uždrausti prieigą prie duomenų bazės

DENY komanda yra naudojama aiškiai užkirsti kelią vartotojui gauti tam tikrą leidimą. Tai naudinga, kai vartotojas yra vaidmens ar grupės narys, kuriam suteiktas leidimas, ir norite užkirsti kelią tam asmeniui paveldėti leidimą sukurdami išimtį. Šios komandos sintaksė yra tokia:

DENY [leidimas] ON [object] TO [user]

Komandos DENY parametrai yra tokie patys kaip ir GRANT komandai.

Pavyzdžiui, jei norėtumėte užtikrinti, kad Matthew niekada negalėtų ištrinti informacijos iš darbuotojų stalo, išduokite šią komandą:

DENIUI UŽDUOTI HR darbininkams prie Mato