Polecenie w języku SQL GRANT SELECT ON klienci TO pracownik WITH GRANT OPTION
Polecenie nadaje użytkownikowi pracownik prawo odczytu tabeli klienci wraz z możliwością przekazywania tego prawa innym. GRANT SELECT pozwala wykonywać zapytania SELECT na tabeli, a dopisek WITH GRANT OPTION sprawia, że odbiorca sam może nadać to samo uprawnienie kolejnym użytkownikom poleceniem GRANT. Do zapamiętania: bez WITH GRANT OPTION użytkownik korzysta z prawa, ale nie może się nim dzielić. W praktyce tę opcję daje się ostrożnie, np. kierownikowi zespołu, bo każdy przekazany dalej przywilej trudniej potem kontrolować. Bez tego dopisku tylko administrator albo właściciel tabeli mógłby nadawać prawo odczytu kolejnym osobom, a pracownik korzystałby z niego wyłącznie sam. Prawo otrzymane z tą opcją można później odebrać poleceniem REVOKE.
Łatwo przeoczyć końcówkę polecenia albo przecenić jego zakres. Słowo SELECT oznacza tylko odczyt, więc nie chodzi o wszystkie uprawnienia - te nadawałoby ALL PRIVILEGES. Polecenie nie przenosi też niczego z grupy klienci: klienci to tabela wskazana po ON, a nie grupa użytkowników. Odbieranie prawa odczytu wymagałoby polecenia REVOKE SELECT ON klienci FROM pracownik, a tu jest GRANT, czyli nadanie. Dopisek WITH GRANT OPTION nie rozszerza praw samego pracownika do tabeli, tylko pozwala mu nadawać prawo SELECT innym. Dlatego poprawny opis to prawo odczytu tabeli klienci z możliwością przekazania go dalej. Czytając polecenie, warto rozbić je na części: GRANT oznacza nadanie, SELECT rodzaj prawa, ON klienci obiekt, TO pracownik odbiorcę, a WITH GRANT OPTION dodatkową możliwość dzielenia się tym prawem. Każda z błędnych odpowiedzi zmienia jedną z tych części - kierunek, zakres albo znaczenie nazwy klienci.