INSTRUKCJE NADAJĄCE I ODBIERAJĄCE UPRAWNIENIA – GRANT I REVOKE
Instrukcje zabezpieczeń w języku SQL, które są wobec siebie symetryczne. GRANT – nadaje uprawnienia użytkownikom natomiast REVOKE je odbiera. Obie instrukcje podlegają pod DCL (Data Control Language zawierająca się w Data Definition Language) czyli podgrupa języka SQL odpowiadającą za kontrolę na danymi w bazie.
UPRAWNIENIA
Użytkownik ma pełne prawa do wszelkich utworzonych przez siebie obiektów w bazie. Praw tych nie można mu odebrać !
Uprawnienia nadawane w języku SQL dzielą się na dwie grupy :
-uprawnienia systemowe
- uprawnienia do dostępu.
UPRAWNIENIA SYSTEMOWE
Podlegają pod grupę DDL (Data Definition Language) odpowiedzialną za definiowanie danych języka SQL. Uprawnienia te umożliwiają użycie instrukcji CREATE, ALTER i DROP dla danego obiektu.
Dostęp do uprawnienia CREATE [object] automatycznie daje użytkownikowi przywileje ALTER i DROP.
UPRAWNIENIA DO DOSTĘPU
Podlegają pod grupę DML (Data Manipulation Language ) odpowiedzialną za modyfikacje danych języka SQL. Podstawowe instrukcje z tej grupy uprawnień to:
- SELECT (wybieranie)
- INSERT (wstawianie)
- UPDATE (aktualizowanie)
- DELETE (usuwanie)
- EXECUTE (wykonywanie przygotowanej instrukcji)
GRANT
Strona 38/50 Wykład_SQL3_3.pdf
w slajdzie brakuje tej instrukcji:
INDEX- do wykonywania instrukcji CREATE INDEX
Strona 39/50 Wykład_SQL3_3.pdf
Strona 40-45/50 Wykład_SQL3_3.pdf
/Przy składni GRANT w slajdach co Ci wypisałem porób wcięcia TABEM, tak jak zrobiłem poniżej w REVOKE, będzie bardziej czytelne./
REVOKE
REVOKE <lista_przywilejów>
ON<nazwa_obiektu>
TO<lista_uzytkowników>
[WITH GRANT OPTION]
Strona 46-50/50 Wykład_SQL3_3.pdf
Przykład wykorzystujący obie instrukcje:
Przykład:
Chcemy usunąć wszystkim użytkownikom wszystkie uprawnienia z tabeli Nauczyciele, następnie nadać uprawnienia SELECT i INDEX każdemu użytkownikowi oraz zaktualizować uprawnienia w poszczególnych kolumnach dla konkretnych użytkowników ( z możliwością nadawania przez nich uprawnień innym użytkownikom).
REVOKE ALL
ON Nauczyciele
FROM PUBLIC;
GRANT SELECT, INDEX
ON Nauczyciele
TO PUBLIC;
GRANT UPDATE (Title, City, SupNo)
ON Nauczyciele
TO Jan, Katarzyna
WITH GRANT OPTION;