Język kontroli danych (DCL) dla uprawnień do bazy danych

ten Język kontroli danych jest podzbiorem strukturalnego języka zapytań. Administratorzy baz danych używają DCL do konfigurowania zabezpieczeń dostępu do relacyjnych baz danych. Uzupełnia Język definicji danych, który dodaje i usuwa obiekty bazy danych, oraz Język manipulacji danymi, który pobiera, wstawia i modyfikuje zawartość bazy danych.

DCL jest najprostszym z podzbiorów SQL, ponieważ składa się tylko z trzech poleceń: GRANT, REVOKE i DENY. Łącznie te trzy polecenia zapewniają administratorom elastyczność w ustawianiu i usuwaniu uprawnień do bazy danych w sposób szczegółowy.

Dodawanie uprawnień za pomocą polecenia GRANT

Polecenie GRANT dodaje nowe uprawnienia użytkownikowi bazy danych. Ma bardzo prostą składnię, zdefiniowaną w następujący sposób:

PRZYZNANIE [przywilej]
WŁ [obiekt]
Do użytkownika]
[Z OPCJĄ DOTACJI]

Oto podsumowanie każdego z parametrów, które możesz podać za pomocą tego polecenia:

  • Przywilej — może być słowem kluczowym ALL (aby przyznać szeroką gamę uprawnień) lub określonym uprawnieniem do bazy danych lub zestawem uprawnień. Przykłady obejmują CREATE DATABASE, SELECT, INSERT, UPDATE, DELETE, EXECUTE i CREATE VIEW.
  • Obiekt — może być dowolnym obiektem bazy danych. Poprawne opcje uprawnień różnią się w zależności od typu obiektu bazy danych zawartego w tej klauzuli. Zazwyczaj obiektem będzie baza danych, funkcja, procedura składowana, tabela lub widok.
  • Użytkownik — może być dowolnym użytkownikiem bazy danych. Możesz również zastąpić rolę użytkownika w tej klauzuli, jeśli chcesz korzystać z zabezpieczeń baz danych opartych na rolach.
  • Jeśli uwzględnisz opcjonalne Z OPCJĄ DOTACJI klauzula na końcu polecenia GRANT, nie tylko przyznajesz uprawnienia określonemu użytkownikowi zdefiniowane w instrukcji SQL, ale także dać użytkownikowi uprawnienia do dalszego ich przyznawania uprawnienia do inny użytkowników baz danych. Z tego powodu należy zachować ostrożność podczas korzystania z tej klauzuli.

Załóżmy na przykład, że chcesz przyznać użytkownikowi Joe możliwość pobierania informacji z pracownik stół w a Baza danych nazywa HR. Użyj następującego polecenia SQL:

PRZYZNAJ WYBÓR
NA HR.pracownicy
DO Joego.

Joe może pobierać informacje z tabeli pracowników. Nie będzie jednak mógł udzielić innym użytkownikom uprawnień do pobierania informacji z tej tabeli, ponieważ skrypt DCL nie zawierał klauzuli WITH GRANT OPTION.

Odwoływanie dostępu do bazy danych

Polecenie REVOKE usuwa dostęp do bazy danych użytkownikowi, któremu wcześniej przyznano taki dostęp. Składnia tego polecenia jest zdefiniowana w następujący sposób:

COFNIĘCIE [OPCJA PRZYZNANIA NA] [pozwolenie]
WŁ [obiekt]
OD [użytkownik]
[KASKADA]

Oto podsumowanie parametrów polecenia REVOKE:

  • Pozwolenie — określa uprawnienia bazy danych do usunięcia zidentyfikowanemu użytkownikowi. Polecenie odwołuje zarówno potwierdzenia GRANT, jak i DENY wykonane wcześniej dla zidentyfikowanego uprawnienia.
  • Obiekt — może być dowolnym obiektem bazy danych. Poprawne opcje uprawnień różnią się w zależności od typu obiektu bazy danych zawartego w tej klauzuli. Zazwyczaj obiektem będzie baza danych, funkcja, procedura składowana, tabela lub widok.
  • Użytkownik — może być dowolnym użytkownikiem bazy danych. Możesz również zastąpić rolę użytkownika w tej klauzuli, jeśli chcesz korzystać z zabezpieczeń baz danych opartych na rolach.
  • ten OPCJA DOTACJI NA Klauzula usuwa zdolność określonego użytkownika do nadawania określonych uprawnień innym użytkownikom. Jeśli uwzględnisz OPCJA DOTACJI NA klauzuli REVOKE w oświadczeniu REVOKE, podstawowe uprawnienie nie jest cofane. Ta klauzula unieważnia tylko zdolność przyznania.
  • ten KASKADA opcja również cofa określone uprawnienie wszystkim użytkownikom, którym dany użytkownik udzielił uprawnienia.

Następujące polecenie odwołuje uprawnienia przyznane Joe w poprzednim przykładzie:

COFNIJ WYBIERZ
NA HR.pracownicy
OD Joego.

Jawne odmawianie dostępu do bazy danych

Polecenie DENY jawnie uniemożliwia użytkownikowi otrzymanie określonego uprawnienia. Ta funkcja jest przydatna, gdy użytkownik jest członkiem roli lub grupy, której udzielono uprawnienia, i chcesz uniemożliwić temu indywidualnemu użytkownikowi dziedziczenie uprawnienia przez utworzenie wyjątku. Składnia tego polecenia jest następująca:

ODMÓW [uprawnienie]
WŁ [obiekt]
Do użytkownika]

Parametry polecenia DENY są identyczne z parametrami używanymi w poleceniu GRANT. Na przykład, jeśli chcesz mieć pewność, że Mateusz nigdy nie otrzyma możliwości usuwania informacji z tabeli pracowników, wydaj następujące polecenie:

ODMÓW USUNIĘCIE
NA HR.pracownicy
DO Mateusza.