Przedstawione polecenie SQL nadaje prawo SELECT
GRANT SELECT ON hurtownia.klienci TO 'sprzedawca'@'localhost';
A. do wszystkich tabel w bazie hurtownia
B. tylko do tabeli klienci w bazie hurtownia
C. dla użytkownika root na serwerze sprzedawca
D. dla użytkownika root na serwerze localhost
Poprawna odpowiedź to: tylko do tabeli klienci w bazie hurtownia. Polecenie GRANT SELECT ON hurtownia.klienci TO 'sprzedawca'@'localhost'; nadaje wskazanemu kontu użytkownika prawo odczytu danych, czyli wykonywania zapytań SELECT, ale wyłącznie na obiekcie podanym po słowie ON. Zapis hurtownia.klienci oznacza konkretną tabelę klienci znajdującą się w bazie danych hurtownia. Do zapamiętania: składnia ma postać GRANT uprawnienie ON baza.obiekt TO 'użytkownik'@'host';. Gdyby uprawnienie miało dotyczyć wszystkich tabel w bazie, użyto by zapisu hurtownia.*. W praktyce takie polecenia stosuje się do ograniczania dostępu, na przykład gdy konto aplikacji lub pracownika ma tylko odczytywać dane klientów, bez możliwości ich zmiany.
W tym poleceniu najłatwiej pomylić nazwę użytkownika, nazwę hosta i zakres nadawanych uprawnień. Poprawna odpowiedź to: tylko do tabeli klienci w bazie hurtownia. Fragment TO 'sprzedawca'@'localhost' wskazuje konto użytkownika sprzedawca logujące się z hosta localhost, więc odpowiedź dla użytkownika root na serwerze localhost nie pasuje do treści polecenia - root nie występuje w instrukcji. Odpowiedź do wszystkich tabel w bazie hurtownia byłaby trafna przy zapisie ON hurtownia.*, ponieważ gwiazdka oznacza wszystkie tabele w danej bazie. Zapis ON hurtownia.klienci wskazuje jedną konkretną tabelę. Odpowiedź dla użytkownika root na serwerze sprzedawca odwraca znaczenie elementów składni: sprzedawca jest nazwą użytkownika, a localhost określa host, z którego ten użytkownik może się łączyć. Typowy błąd polega na traktowaniu części po ON jako całej bazy albo myleniu składni 'użytkownik'@'host' z nazwą serwera.