Polecenie GRANT służy do nadawania uprawnień do obiektów bazy danych (np. tabel). W tym zadaniu kluczowe jest rozróżnienie, czy użytkownik ma mieć wyłącznie odczyt, czy także możliwość zmian.
Poprawna odpowiedź: "GRANT SELECT ON szkola.przedmioty TO uczen;", ponieważ uprawnienie SELECT pozwala jedynie wykonywać zapytania odczytujące dane. Nie daje ono możliwości dopisywania, edycji ani usuwania rekordów, ani tym bardziej zmieniania definicji tabeli. Z punktu widzenia modyfikacji jest to poziom "zero zmian".
Dlaczego pozostałe polecenia są niepoprawne:
- "GRANT DROP …" pozwala usunąć tabelę wraz z danymi, co jest najbardziej destrukcyjną operacją wśród podanych opcji.
- "GRANT INSERT, DROP …" zawiera INSERT (dodawanie danych) oraz DROP (usunięcie tabeli). Już sam INSERT oznacza możliwość modyfikacji danych, a DROP dodatkowo ryzyko utraty całej tabeli.
- "GRANT ALTER, SELECT …" oprócz odczytu daje ALTER, czyli możliwość zmiany struktury tabeli (np. dodawania/usuwania kolumn). To przekracza wymaganie "bez zmiany struktury".
W praktyce (np. w pracowni szkolnej lub przy testach) stosuje się zasadę najmniejszych uprawnień: nadaje się dokładnie tyle, ile trzeba. Jeśli użytkownik ma tylko przeglądać dane, wybiera się SELECT, a prawa typu ALTER/DROP pozostawia administratorom.