Duomenų bazės leidimų duomenų valdymo kalba (DCL).

click fraud protection

The Duomenų valdymo kalba yra struktūrinės užklausos kalbos poaibis. Duomenų bazių administratoriai naudoja DCL, kad sukonfigūruotų saugos prieigą prie reliacinių duomenų bazių. Jis papildo Duomenų apibrėžimo kalba, kuri prideda ir ištrina duomenų bazės objektus, ir Duomenų manipuliavimo kalba, kuri nuskaito, įterpia ir modifikuoja duomenų bazės turinį.

DCL yra paprasčiausias iš SQL poaibių, nes jį sudaro tik trys komandos: GRANT, REVOKE ir DENY. Kartu šios trys komandos suteikia administratoriams lankstumo detaliai nustatyti ir pašalinti duomenų bazės leidimus.

Leidimų pridėjimas naudojant GRANT komandą

Komanda GRANT prideda naujų duomenų bazės naudotojo teisių. Ji turi labai paprastą sintaksę, apibrėžtą taip:

SUTEIKTI [privilegija]
ĮJUNGTA [objektas]
KAM [vartotojas]
[SU SUTEIKIMO PASIRINKTIMIS]

Štai kiekvieno parametro, kurį galite pateikti naudodami šią komandą, santrauka:

  • Privilegija – gali būti raktinis žodis ALL (suteikti daug įvairių leidimų) arba konkretus duomenų bazės leidimas arba leidimų rinkinys. Pavyzdžiai: KURTI DUOMENŲ BAZĘ, PASIRINKTI, Įterpti, ATNAUJINTI, IŠTRINTI, VYKDYTI ir KURTI RODINĮ.
  • Objektas - gali būti bet koks duomenų bazės objektas. Galiojančios privilegijų parinktys skiriasi atsižvelgiant į duomenų bazės objekto tipą, kurį įtraukėte į šį punktą. Paprastai objektas bus duomenų bazė, funkcija, saugoma procedūra, lentelė arba vaizdas.
  • Vartotojas - gali būti bet kuris duomenų bazės vartotojas. Šiame punkte taip pat galite pakeisti vartotojo vaidmenį, jei norite pasinaudoti vaidmenimis pagrįstu duomenų bazės saugumu.
  • Jei įtrauksite neprivalomą SU DOTACIJOS OPTION Komandos GRANT pabaigoje esančią sąlygą jūs ne tik suteikiate nurodytam vartotojui leidimus apibrėžti SQL sakinyje, bet ir suteikti vartotojui leidimą toliau suteikti tuos pačius leidimai kitas duomenų bazės vartotojai. Dėl šios priežasties šią sąlygą naudokite atsargiai.

Pavyzdžiui, tarkime, kad norite suteikti vartotojui Džo galimybė gauti informaciją iš darbuotojas lentelė a duomenų bazėje paskambino HR. Naudokite šią SQL komandą:

SUTEIKTI PASIRINKTI
ON HR.darbuotojai
Joe.

Džo gali gauti informaciją iš darbuotojų lentelės. Tačiau jis negalės suteikti kitiems vartotojams leidimo gauti informaciją iš tos lentelės, nes DCL scenarijus neapėmė sąlygos WITH GRANT OPTION.

Prieigos prie duomenų bazės atšaukimas

Komanda REVOKE pašalina prieigą prie duomenų bazės iš vartotojo, kuriam anksčiau buvo suteikta tokia prieiga. Šios komandos sintaksė apibrėžiama taip:

ATŠAUKTI [SUTEIKTI OPTION] [leidimas]
ĮJUNGTA [objektas]
NUO [naudotojas]
[KASKADA]

Štai komandos REVOKE parametrų santrauka:

  • Leidimas — nurodo duomenų bazės leidimus, kuriuos reikia pašalinti iš identifikuoto vartotojo. Komanda atšaukia ir GRANT, ir DENY tvirtinimus, anksčiau pateiktus dėl nustatyto leidimo.
  • Objektas - gali būti bet koks duomenų bazės objektas. Galiojančios privilegijų parinktys skiriasi atsižvelgiant į duomenų bazės objekto tipą, kurį įtraukėte į šį punktą. Paprastai objektas bus duomenų bazė, funkcija, saugoma procedūra, lentelė arba rodinys.
  • Vartotojas - gali būti bet kuris duomenų bazės vartotojas. Šiame punkte taip pat galite pakeisti vartotojo vaidmenį, jei norite pasinaudoti vaidmenimis pagrįstu duomenų bazės saugumu.
  • The DOTACIJOS VARIANTAS sąlyga pašalina nurodyto vartotojo galimybę suteikti nurodytą leidimą kitiems vartotojams. Jei įtrauksite DOTACIJOS VARIANTAS REVOKE sakinio sąlyga, pirminis leidimas nėra atšauktas. Ši sąlyga panaikina tik teisę suteikti galimybę.
  • The KASKADA parinktis taip pat atšaukia nurodytą leidimą visiems vartotojams, kuriems nurodytas vartotojas suteikė leidimą.

Ši komanda atšaukia ankstesniame pavyzdyje Džo suteiktą leidimą:

ATŠAUKTI PASIRINKTI
ON HR.darbuotojai
NUO Joe.

Aiškus prieigos prie duomenų bazės atsisakymas

Komanda DENY aiškiai neleidžia vartotojui gauti konkretaus leidimo. Ši funkcija naudinga, kai vartotojas yra vaidmens ar grupės, kuriai suteiktas leidimas, narys ir norite neleisti tam atskiram vartotojui paveldėti leidimą sukurdami išimtį. Šios komandos sintaksė yra tokia:

ATSAKYTI [leidimas]
ĮJUNGTA [objektas]
KAM [vartotojas]

Komandos DENY parametrai yra identiški tiems, kurie naudojami komandai GRANT. Pavyzdžiui, jei norite užtikrinti, kad Matthew niekada negautų galimybės ištrinti informacijos iš darbuotojų lentelės, išduokite šią komandą:

ATSAKYTI IŠTRINTI
ON HR.darbuotojai
Matui.