Jezik kontrole podataka (DCL) za dopuštenja baze podataka
The Jezik kontrole podataka je podskup jezika strukturiranih upita. Administratori baze podataka koriste DCL za konfiguriranje sigurnosnog pristupa relacijskim bazama podataka. Ona nadopunjuje Jezik definicije podataka, koji dodaje i briše objekte baze podataka, i Jezik za manipulaciju podacima, koji dohvaća, umeće i mijenja sadržaj baze podataka.
DCL je najjednostavniji od SQL podskupova, jer se sastoji od samo tri naredbe: GRANT, REVOKE i DENY. U kombinaciji, ove tri naredbe pružaju administratorima fleksibilnost za postavljanje i uklanjanje dopuštenja baze podataka na granularni način.
Dodavanje dopuštenja pomoću naredbe GRANT
Naredba GRANT dodaje nove dozvole korisniku baze podataka. Ima vrlo jednostavnu sintaksu, definiranu kako slijedi:
GRANT [privilegija]
UKLJUČENO [objekt]
DO [korisnika]
[SA OPCIJOM DODOVANJA]
Evo sažetka svakog od parametara koje možete dostaviti ovom naredbom:
-
Privilegija — može biti ili ključna riječ SVE (za dodjelu širokog spektra dopuštenja) ili određena dozvola baze podataka ili skup dopuštenja. Primjeri uključuju CREATE DATABASE, SELECT, INSERT, UPDATE, DELETE, EXECUTE i CREATE VIEW.
- Objekt — može biti bilo koji objekt baze podataka. Važeće opcije privilegija razlikuju se ovisno o vrsti objekta baze podataka koji uključujete u ovu klauzulu. Obično će objekt biti ili baza podataka, funkcija, pohranjena procedura, tablicu ili pogled.
- Korisnik — može biti bilo koji korisnik baze podataka. Također možete zamijeniti ulogu za korisnika u ovoj klauzuli ako želite koristiti sigurnost baze podataka temeljenu na ulozi.
- Ako uključite neobavezno S OPCIJOM DOBAVE klauzulu na kraju naredbe GRANT, ne samo da određenom korisniku dodjeljujete dopuštenja definiran u SQL naredbi, ali također daje korisniku dopuštenje za daljnju dodjelu istih dozvole za drugo korisnika baze podataka. Iz tog razloga, pažljivo koristite ovu klauzulu.
Na primjer, pretpostavite da želite dodijeliti korisniku Joe sposobnost dohvaćanja informacija iz zaposlenik stol u a baza podataka pozvao HR. Koristite sljedeću SQL naredbu:
GRANT SELECT
NA HR.zaposlenici
ZA Joea.
Joe može dohvatiti informacije sa stola zaposlenika. On, međutim, neće moći dati drugim korisnicima dopuštenje za dohvaćanje informacija iz te tablice jer DCL skripta nije uključivala klauzulu WITH GRANT OPTION.
Opoziv pristupa bazi podataka
Naredba REVOKE uklanja pristup bazi podataka od korisnika koji je prethodno dobio takav pristup. Sintaksa za ovu naredbu definirana je kako slijedi:
OPOZIVANJE [ODOBREBA OPCIJA ZA] [dopuštenje]
UKLJUČENO [objekt]
OD [korisnika]
[KASKADA]
Evo sažetka parametara za naredbu REVOKE:
- Dopuštenje — specificira dopuštenja baze podataka za uklanjanje od identificiranog korisnika. Naredba opoziva i GRANT i DENY tvrdnje koje su prethodno napravljene za identificirano dopuštenje.
- Objekt — može biti bilo koji objekt baze podataka. Važeće opcije privilegija razlikuju se ovisno o vrsti objekta baze podataka koji uključujete u ovu klauzulu. Obično će objekt biti ili baza podataka, funkcija, pohranjena procedura, tablica ili pogled.
- Korisnik — može biti bilo koji korisnik baze podataka. Također možete zamijeniti ulogu za korisnika u ovoj klauzuli ako želite koristiti sigurnost baze podataka temeljenu na ulozi.
- The OPCIJA DOBAVE ZA klauzula uklanja mogućnost određenog korisnika da dodijeli navedeno dopuštenje drugim korisnicima. Ako uključite OPCIJA DOBAVE ZA klauzule u izjavi REVOKE, primarna dozvola se ne opoziva. Ova klauzula ukida samo mogućnost davanja.
- The KASKADA opcija također opoziva navedeno dopuštenje svim korisnicima kojima je navedeni korisnik dao dopuštenje.
Sljedeća naredba opoziva dopuštenje dano Joeu u prethodnom primjeru:
OPOZI ODABIR
NA HR.zaposlenici
OD Joea.
Izričito odbijanje pristupa bazi podataka
Naredba DENY izričito sprječava korisnika da dobije određenu dozvolu. Ova je značajka korisna kada je korisnik član uloge ili grupe kojoj je dodijeljeno dopuštenje, a želite spriječiti da taj pojedinačni korisnik naslijedi dopuštenje stvaranjem iznimke. Sintaksa za ovu naredbu je sljedeća:
DENY [dopuštenje]
UKLJUČENO [objekt]
DO [korisnika]
Parametri za naredbu DENY identični su onima koji se koriste za naredbu GRANT. Na primjer, ako želite osigurati da Matthew nikada neće dobiti mogućnost brisanja informacija iz tablice zaposlenika, izdajte sljedeću naredbu:
ZABRIŠI
NA HR.zaposlenici
Mateju.