GRANT i REVOKE w SQL
Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
GRANT i REVOKE to polecenia języka SQL należące do grupy DCL (Data Control Language), czyli poleceń służących do nadawania i odbierania uprawnień użytkownikom bazy danych.
Polecenie GRANT
GRANT nadaje użytkownikowi wskazane uprawnienia do obiektu bazy danych, np. tabeli.
GRANT SELECT, INSERT ON klienci TO adam;
To polecenie oznacza, że użytkownik adam może przeglądać dane z tabeli klienci oraz dodawać do niej rekordy.
Często spotykane uprawnienia:
- SELECT - odczyt danych,
- INSERT - dodawanie rekordów,
- UPDATE - modyfikowanie rekordów,
- DELETE - usuwanie rekordów,
- ALTER - zmiana struktury tabeli,
- DROP - usunięcie tabeli,
- ALL PRIVILEGES - nadanie wszystkich dostępnych uprawnień.
Polecenie REVOKE
REVOKE odbiera wcześniej nadane uprawnienia.
REVOKE SELECT, INSERT, UPDATE ON klienci FROM adam;
Po tym poleceniu użytkownik adam traci możliwość odczytu, dodawania i modyfikowania danych w tabeli klienci.
Jak analizować kolejność poleceń?
Uprawnienia należy analizować po kolei. Jeśli najpierw wykonano:
GRANT ALL PRIVILEGES ON klienci TO adam;
a następnie:
REVOKE SELECT, INSERT, UPDATE ON klienci FROM adam;
to użytkownik miał wszystkie uprawnienia, ale stracił SELECT, INSERT i UPDATE. Nadal pozostają mu inne uprawnienia, np. DELETE lub DROP, czyli może usuwać rekordy albo tabelę, jeśli takie uprawnienia obejmuje ALL PRIVILEGES w danym systemie bazodanowym.
Wniosek egzaminacyjny
Jeżeli odebrano tylko SELECT, INSERT i UPDATE, to użytkownik nie może przeglądać, dodawać ani modyfikować danych, ale może nadal mieć prawo do usuwania danych lub tabeli.