Polecenia kontroli dostępu w SQL (DCL) służą do zarządzania uprawnieniami użytkowników. W MySQL do nadawania uprawnień używa się GRANT, a do cofania – REVOKE.
W zapytaniu REVOKE DELETE, UPDATE ON pracownicy FROM 'tKowal'@'localhost' administrator wskazuje dwa konkretne przywileje oraz obiekt, którego dotyczą:
- DELETE – prawo do usuwania wierszy z tabeli (operacje kasowania danych).
- UPDATE – prawo do zmiany wartości w istniejących wierszach (aktualizacja danych).
Dlatego poprawne jest stwierdzenie, że użytkownikowi zostaną odebrane prawa usuwania i modyfikowania danych w tabeli pracownicy.
Dlaczego pozostałe odpowiedzi są niepoprawne:
- Odpowiedź mówiąca o "przydzieleniu" praw myli REVOKE z GRANT. Sama składnia REVOKE oznacza cofnięcie, nie nadanie.
- Wariant z "dodawaniem rekordów" dotyczyłby przywileju INSERT, a nie UPDATE. UPDATE nie tworzy nowych wierszy, tylko zmienia istniejące.
- Wariant o "zmianie struktury tabeli" odnosi się do uprawnień DDL, np. ALTER, CREATE, DROP. REVOKE DELETE, UPDATE nie dotyczy struktury, tylko operacji na danych (DML) w obrębie wskazanej tabeli.
W praktyce takie cofnięcie uprawnień stosuje się, gdy konto aplikacyjne lub pracownika nie powinno już wykonywać destrukcyjnych operacji (DELETE) albo modyfikacji (UPDATE) na wrażliwej tabeli.