Dopuštenja za dozvole GRANT, REVOKE i DENY
Jezik kontrole podataka (DCL) je podskup Strukturiranog jezika upita (SQL) i omogućuje administratorima baze podataka da konfiguriraju pristup sigurnosti u relacijskim bazama podataka. Ona nadopunjuje jezik za definiranje podataka (DDL), koji se koristi za dodavanje i brisanje objekata baze podataka, a jezik za manipulaciju podacima (DML) koji se koristi za preuzimanje, umetanje i izmjenu sadržaja baze podataka.
DCL je najjednostavniji od SQL podskupova , jer se sastoji od samo tri naredbe: GRANT, REVOKE i DENY. Kombinacijom, ove tri naredbe pružaju administratorima fleksibilnost za postavljanje i uklanjanje dopuštenja baze podataka na iznimno zrnatom način.
Dodavanje dozvola pomoću naredbe GRANT
Administratorica koristi naredbu GRANT za dodavanje novih dozvola korisniku baze podataka . Ima vrlo jednostavnu sintaksu, definiranu kako slijedi:
GRANT [povlastica] ON [objekt] NA [korisnika] [S GRANT OPTION]Evo rundown na svakom od parametara koje možete dostaviti s ovom naredbom:
- Privilegija može biti ključna riječ ALL (za odobrenje širokog raspona dozvola) ili određena dozvola za bazu podataka ili skup dozvola. Primjeri uključuju CREATE DATABASE, SELECT, INSERT, UPDATE, DELETE, EXECUTE i CREATE VIEW.
- Objekt može biti bilo koji objekt baze podataka. Valjane opcije povlastica razlikuju se ovisno o vrsti objekta baze podataka koji ste uključili u ovoj klauzuli. Obično će objekt biti baza podataka, funkcija, pohranjena procedura , tablica ili pregled.
- Korisnik može biti bilo koji korisnik baze podataka. Korisniku možete zamijeniti i ulogu u ovoj klauzuli ako želite koristiti sigurnosnu zaštitu baze uloga.
- Ako uključite opciju WITH GRANT OPTION klauzule na kraju naredbe GRANT, ne samo da ćete dopuštenom korisniku odobriti dopuštenja definirana u SQL izvatku, već i omogućiti korisniku da odobri te iste dozvole drugim korisnicima baze podataka. Iz tog razloga, pažljivo koristite ovu klauzulu.
Na primjer, pretpostavimo da želite omogućiti korisniku Joeu mogućnost dohvaćanja podataka iz tablice zaposlenika u bazi podataka zvanom HR. Možete upotrijebiti sljedeću SQL naredbu:
GRANT ODABRANI NA HR.employees TO JoeJoe će sada moći preuzeti podatke iz tablice zaposlenika. Međutim, neće moći odobriti drugim korisnicima dozvolu za preuzimanje podataka iz te tablice jer niste uključili klauzulu WITH GRANT OPTION u izjavi GRANT.
Opoziv pristupa bazi podataka
Naredba REVOKE koristi se za uklanjanje pristupa bazi podataka od korisnika koji je prethodno odobrio takav pristup. Sintaksa za ovu naredbu definirana je kako slijedi:
REVOKE [GRANT OPTION FOR] [dopuštenje] ON [object] FROM [korisnik] [CASCADE]Evo rundown na parametrima naredbe REVOKE:
- Dopuštenje određuje dopuštenja baze podataka za uklanjanje od identificiranog korisnika. Naredba opozvaje i tvrdnje GRANT i DENY prethodno napravljene za utvrđenu dozvolu.
- Objekt može biti bilo koji objekt baze podataka. Valjane opcije povlastica razlikuju se ovisno o vrsti objekta baze podataka koji ste uključili u ovoj klauzuli. Obično će objekt biti baza podataka, funkcija, pohranjena procedura, tablica ili pregled.
- Korisnik može biti bilo koji korisnik baze podataka. Korisniku možete zamijeniti i ulogu u ovoj klauzuli ako želite koristiti sigurnosnu zaštitu baze uloga.
- Odredba OPCIJA ZA DODJELU uklanja mogućnost određenog korisnika da odobri navedenu dozvolu drugim korisnicima. Napomena : Ako u rečenicu REVOKE uključite opciju GRANT OPTION FOR , primarno dopuštenje nije opozvano. Ova klauzula ukida samo sposobnost dodjele.
- Opcija CASCADE također opoziva navedeno dopuštenje bilo kojeg korisnika koje je određeni korisnik odobrio dopuštenje.
Na primjer, sljedeća naredba ukida dozvolu dodijeljenu Joeu u prethodnom primjeru:
REVOKE ODABIR NA HR.employees FROM JoeEksplicitno uskraćivanje pristupa bazi podataka
Naredba DENY upotrebljava se za izričito sprječavanje korisnika da primi određenu dozvolu. To je korisno kada je korisnik član uloge ili grupe kojoj je odobrena dozvola, a želite spriječiti da pojedini korisnik nasljeđuje dozvolu stvaranjem iznimke. Sintaksa za ovu naredbu je sljedeća:
DENY [dopuštenje] ON [object] TO [user] Parametri za naredbu DENY identični su onima koji se koriste za naredbu GRANT.
Na primjer, ako želite osigurati da Matej nikada ne dobije mogućnost brisanja podataka iz tablice zaposlenika, izdajte sljedeću naredbu: