Jakie prawa nada polecenie
GRANT SELECT (imie, nazwisko) ON klienci TO anna;jeśli użytkownik anna nie miał wcześniej żadnych praw?
A. prawo dodawania do tabeli klienci kolumn imie i nazwisko
B. prawo odczytu wyłącznie kolumn imie i nazwisko z tabeli klienci
C. prawo odczytu wszystkich kolumn tabeli klienci
D. prawo odczytu i zmiany danych w kolumnach imie i nazwisko tabeli klienci
Poprawna odpowiedź to: prawo odczytu wyłącznie kolumn imie i nazwisko z tabeli klienci. Polecenie GRANT nadaje użytkownikowi określone uprawnienia do obiektów bazy danych. W zapisie GRANT SELECT (imie, nazwisko) ON klienci TO anna lista w nawiasie po SELECT oznacza ograniczenie uprawnienia do wskazanych kolumn. Skoro użytkownik anna nie miał wcześniej żadnych praw, po wykonaniu polecenia będzie mogła odczytywać tylko wartości z kolumn imie i nazwisko w tabeli klienci, a nie całą tabelę. Do zapamiętania: GRANT SELECT ON tabela nadaje odczyt całej tabeli, natomiast GRANT SELECT (kolumna1, kolumna2) ON tabela ogranicza odczyt do wymienionych kolumn. Takie rozwiązanie stosuje się przy udostępnianiu tylko części danych, np. bez pól zawierających informacje poufne.
W tym poleceniu decydujące znaczenie ma lista kolumn podana po SELECT. Poprawna odpowiedź to: prawo odczytu wyłącznie kolumn imie i nazwisko z tabeli klienci. Prawo odczytu wszystkich kolumn tabeli klienci byłoby nadane przez składnię GRANT SELECT ON klienci TO anna, czyli bez nawiasu z nazwami kolumn. Prawo odczytu i zmiany danych w kolumnach imie i nazwisko tabeli klienci wymagałoby dodatkowego uprawnienia do modyfikacji, np. UPDATE(imie, nazwisko); samo SELECT oznacza wyłącznie odczyt. Prawo dodawania do tabeli klienci kolumn imie i nazwisko dotyczyłoby zmiany struktury tabeli, czyli operacji typu ALTER TABLE, a nie uprawnienia SELECT. Typowy błąd polega na pominięciu znaczenia nawiasu z listą kolumn albo na utożsamieniu SELECT z pełnym dostępem do tabeli. W SQL uprawnienia mogą być nadawane bardzo precyzyjnie - do całej tabeli albo tylko do wybranych kolumn.