W systemie MySQL należy odebrać użytkownikowi anna wszystkie uprawnienia do tabeli tabela1, ale bez usuwania jego konta. Odpowiednie polecenie ma postać
A.
REVOKE CREATE, ALTER, DROP ON tabela1 FROM 'anna'@'localhost';
B.
REVOKE ALL PRIVILEGES ON tabela1 TO 'anna'@'localhost';
C.
REVOKE ALL PRIVILEGES ON tabela1 FROM 'anna'@'localhost';
D.
DROP USER 'anna'@'localhost';
Poprawne polecenie to: REVOKE ALL PRIVILEGES ON tabela1 FROM 'anna'@'localhost';. Instrukcja REVOKE odbiera wcześniej nadane uprawnienia, a ALL PRIVILEGES oznacza pełny zestaw uprawnień dotyczących wskazanego obiektu. Fragment ON tabela1 określa tabelę, której dotyczy operacja, natomiast FROM 'anna'@'localhost' wskazuje konto użytkownika w MySQL, z uwzględnieniem hosta logowania. Reguła do zapamiętania: uprawnienia odbiera się składnią REVOKE uprawnienia ON obiekt FROM użytkownik;. Do nadawania służy GRANT ... TO ..., dlatego w REVOKE używa się FROM, a nie TO. Takie polecenie stosuje się, gdy konto ma pozostać w systemie, ale użytkownik nie powinien już wykonywać operacji na konkretnej tabeli.
Problem dotyczy odebrania pełnych uprawnień do tabeli, a nie usunięcia konta ani odebrania tylko wybranych praw. Polecenie REVOKE CREATE, ALTER, DROP ON tabela1 FROM 'anna'@'localhost'; odbiera wyłącznie trzy uprawnienia związane z tworzeniem, zmianą struktury i usuwaniem obiektów. Byłoby trafne, gdyby należało odebrać tylko te konkretne prawa, a użytkownik mógłby nadal zachować np. SELECT, INSERT lub UPDATE, jeśli były nadane. Polecenie DROP USER 'anna'@'localhost'; usuwa konto z serwera MySQL, więc nie spełnia warunku pozostawienia użytkownika w systemie. Polecenie REVOKE ALL PRIVILEGES ON tabela1 TO 'anna'@'localhost'; miesza składnię GRANT i REVOKE: przy odbieraniu uprawnień używa się FROM, a TO występuje przy nadawaniu, np. w GRANT ... TO .... Poprawna składnia to REVOKE ALL PRIVILEGES ON tabela1 FROM 'anna'@'localhost';. Typowy błąd polega na pomyleniu zarządzania uprawnieniami z zarządzaniem kontami albo na użyciu słowa TO z instrukcji GRANT.