Polecenie serwera MySQL postaci
REVOKE DELETE, UPDATE ON pracownicy FROM 'tKowal'@'localhost'sprawi, że użytkownikowi tKowal zostaną
A. przydzielone prawa wszelkiej zmiany struktury tabeli pracownicy.
Źle. REVOKE niczego nie przydziela, a struktury tabeli dotyczy prawo ALTER.
B. przydzielone prawa do usuwania i aktualizowania danych w tabeli pracownicy.
Źle. REVOKE odbiera uprawnienia, a przydziela je polecenie GRANT.
C. odebrane prawa usuwania i dodawania rekordów w tabeli pracownicy.
Źle. Dodawanie rekordów to INSERT, a w poleceniu jest UPDATE, czyli modyfikowanie.
D. odebrane prawa usuwania i modyfikowania danych w tabeli pracownicy.
Dobrze. REVOKE odbiera prawa DELETE (usuwanie) i UPDATE (modyfikowanie danych).
Pytanie z egzaminu CKE, czerwiec 2016 (arkusz E.14-X-16.05).
Polecenie odbiera użytkownikowi tKowal prawa usuwania i modyfikowania danych w tabeli pracownicy.
REVOKE cofa uprawnienia nadane wcześniej poleceniem GRANT. Uprawnienie DELETE pozwala kasować rekordy, a UPDATE zmieniać wartości w istniejących wierszach. Po wykonaniu polecenia użytkownik nadal może mieć inne prawa, na przykład SELECT, jeśli je wcześniej otrzymał. Do zapamiętania: GRANT ... TO nadaje, REVOKE ... FROM odbiera, a konto MySQL zapisuje się jako 'nazwa'@'host'. Aktualne prawa konta pokaże SHOW GRANTS FOR 'tKowal'@'localhost';. W systemie z wieloma użytkownikami odbieranie zbędnych praw jest podstawą zasady najmniejszych uprawnień: każde konto ma tylko te prawa, których naprawdę potrzebuje.Pułapką są tu dwie rzeczy: kierunek polecenia i znaczenie poszczególnych uprawnień.
REVOKE zawsze odbiera, więc opisy z „przydzielone” odpadają od razu - przydziela GRANT. Zmiana struktury tabeli to uprawnienie ALTER, którego w poleceniu w ogóle nie ma. Wersja z odebraniem praw usuwania i dodawania rekordów myli UPDATE z INSERT: INSERT dodaje nowe wiersze, a UPDATE modyfikuje dane w wierszach istniejących. W poleceniu z pytania stoją DELETE i UPDATE, więc tKowal traci możliwość usuwania i modyfikowania danych w tabeli pracownicy. Dobrze zapamiętać cztery podstawowe prawa do danych: SELECT czyta, INSERT dodaje, UPDATE zmienia, DELETE usuwa. Zapis konta 'tKowal'@'localhost' oznacza użytkownika łączącego się z tego samego komputera, na którym działa serwer; to samo konto łączące się z innego hosta byłoby dla MySQL innym kontem, z osobnym zestawem uprawnień.