GRANT, REVOKE dhe DENY Dosjet e bazës së të dhënave
Gjuha e Kontrollit të të Dhënave (DCL) është një nëngrup i Gjuhës Strukturore të Kërkimit (SQL) dhe lejon administratorët e bazës së të dhënave të konfigurojnë qasjen e sigurisë në bazat e të dhënave relacionale. Ai plotëson të dhënat e definimit të gjuhës (DDL), e cila përdoret për të shtuar dhe fshirë objektet e bazës së të dhënave, dhe Gjuha e manipulimit të të dhënave (DML) përdoret për të rifituar, futur dhe modifikuar përmbajtjen e një baze të dhënash.
DCL është më e thjeshtë e subsets SQL , pasi përbëhet nga vetëm tre komanda: GRANT, REVOKE, dhe DENY. Kombinuar, këto tre komanda u japin administratorëve fleksibilitetin për të vendosur dhe hequr lejet e bazës së të dhënave në një mënyrë jashtëzakonisht të grimcuar.
Shtimi i lejeve me komandën GRANT
Komanda GRANT përdoret nga administratorët për të shtuar leje të reja për një përdorues të bazës së të dhënave . Ka një sintaksë shumë të thjeshtë, të përcaktuar si më poshtë:
GRANT [privilegj] ON [objekt] TE [user] [ME OPTION GRANT]Këtu është e keqja për secilin nga parametrat që mund të furnizoni me këtë komandë:
- Privilegj mund të jetë ose fjalia ALL (për të dhënë një shumëllojshmëri të gjerë të lejeve) ose një leje specifike të bazës së të dhënave ose një grup lejesh. Shembujt përfshijnë CREATE DATABASE, SELECT, INSERT, UPDATE, DELETE, EXECUTE dhe CREATE VIEW.
- Objekti mund të jetë çdo objekt i bazës së të dhënave. Opsionet e privilegjuara të privilegjuara ndryshojnë në bazë të llojit të objektit të bazës së të dhënave që përfshini në këtë klauzolë. Në mënyrë tipike, objekti do të jetë ose një bazë të dhënash, funksion, procedurë e ruajtur , tabelë ose pamje.
- Përdoruesi mund të jetë çdo përdorues i bazës së të dhënave. Ju gjithashtu mund të zëvendësoni një rol për përdoruesin në këtë klauzolë nëse dëshironi të përdorni sigurinë e bazës së të dhënave të bazuara në role.
- Nëse përfshini klauzolën opsionale WITH GRANT OPTION në fund të komandës GRANT, jo vetëm që i jepni përdoruesit të specifikuar lejet e përcaktuara në deklaratën SQL, por i jepni gjithashtu përdoruesit mundësinë për t'i dhënë atyre lejeve të njëjta për përdoruesit e tjerë të bazës së të dhënave. Për këtë arsye, përdorni këtë klauzolë me kujdes.
Për shembull, supozoni se dëshironi të jepni përdoruesin Joe mundësinë për të marrë informacion nga tabela e punonjësve në një bazë të dhënash të quajtur HR. Ju mund të përdorni komandën e mëposhtme SQL:
GRANT SELECT PËR HR.employees TO JoeJoe tani do të ketë aftësinë për të marrë informacion nga tabela e punonjësve. Megjithatë, ai nuk do të jetë në gjendje t'u japë përdoruesve të tjerë leje për të marrë informacion nga ajo tabelë sepse nuk keni përfshirë klauzolën WITH GRANT OPTION në deklaratën GRANT.
Revokimi i Access Database
Komanda REVOKE përdoret për të hequr qasjen në bazën e të dhënave nga një përdorues që më parë iu dha një qasje e tillë. Sintaksa për këtë komandë është përcaktuar si më poshtë:
REVOKE [GRANT OPTION] për [leje] ON [objekt] NGA [user] [CASCADE]Këtu është rënia e parametrave për komandën REVOKE:
- Leja përcakton lejet e bazës së të dhënave për të hequr nga përdoruesi i identifikuar. Komanda revokon të dy pohimet GRANT dhe DENY të bëra më parë për lejen e identifikuar.
- Objekti mund të jetë çdo objekt i bazës së të dhënave. Opsionet e privilegjuara të privilegjuara ndryshojnë në bazë të llojit të objektit të bazës së të dhënave që përfshini në këtë klauzolë. Në mënyrë tipike, objekti do të jetë ose një bazë të dhënash, funksion, procedurë e ruajtur, tabelë ose pamje.
- Përdoruesi mund të jetë çdo përdorues i bazës së të dhënave. Ju gjithashtu mund të zëvendësoni një rol për përdoruesin në këtë klauzolë nëse dëshironi të përdorni sigurinë e bazës së të dhënave të bazuara në role.
- Opcioni GRANT OPT klauzolë largon aftësinë e përdoruesit të specifikuar për të dhënë lejen e specifikuar për përdoruesit e tjerë. Shënim : Nëse përfshini opsionin GRANT OPTION FOR në një deklaratë REVOKE, leja kryesore nuk revokohet. Kjo dispozitë revokon vetëm aftësinë e dhënies.
- Opsioni CASCADE gjithashtu heq të drejtën e specifikuar nga çdo përdorues që përdoruesi i specifikuar ka dhënë lejen.
Për shembull, komanda e mëposhtme anulon lejen e dhënë për Joe në shembullin e mëparshëm:
REVOKE SELECT ON HR.employees NGA JoeDhënia në mënyrë eksplicite e qasjes në bazën e të dhënave
Komanda DENY përdoret për të parandaluar shprehimisht një përdorues që të marrë një leje të veçantë. Kjo është e dobishme kur një përdorues është një anëtar i një roli ose grupi që i është dhënë një leje dhe doni të parandaloni që përdoruesi individual të trashëgojë lejen duke krijuar një përjashtim. Sintaksa për këtë komandë është si më poshtë:
DENY [leje] ON [object] TO [user] Parametrat për komandën DENY janë identike me ato të përdorura për komandën GRANT.
Për shembull, nëse dëshironi të siguroni që Mateu nuk do të marrë kurrë aftësinë për të fshirë informacionin nga tabela e punonjësve, jepni komandën e mëposhtme: