KWALIFIKACJA INF3 - CZERWIEC 2021

PYTANIE NR 24.
GRANT SELECT, INSERT, UPDATE ON klienci TO anna; Zakładając, że użytkownik wcześniej nie miał żadnych praw, polecenie SQL nada użytkownikowi anna prawa jedynie do
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
GRANT SELECT, INSERT, UPDATE ON klienci TO anna nadaje użytkownikowi dokładnie trzy wskazane przywileje do konkretnej tabeli klienci: odczyt (SELECT), dopisywanie rekordów (INSERT) i zmianę istniejących rekordów (UPDATE). Nie obejmuje to zmian struktury tabeli (np. ALTER) ani uprawnień do innych tabel w bazie.

Pełne wyjaśnienie:

Polecenie GRANT SELECT, INSERT, UPDATE ON klienci TO anna; służy do nadania uprawnień (przywilejów) użytkownikowi anna. Kluczowe są tu dwa elementy: lista przywilejów oraz obiekt, którego one dotyczą.

1) Jakie uprawnienia są nadawane?

  • SELECT – pozwala odczytywać dane z tabeli (wykonywać zapytania zwracające wiersze).
  • INSERT – pozwala wstawiać nowe rekordy (nowe wiersze) do tabeli.
  • UPDATE – pozwala modyfikować wartości w istniejących rekordach tabeli.

2) Jaki jest zakres (do czego)?

Fragment ON klienci wskazuje, że uprawnienia dotyczą tabeli o nazwie klienci. Oznacza to, że użytkownik nie dostaje automatycznie praw do innych tabel ani do całej bazy danych. Zakres jest ograniczony do tego jednego obiektu.

Dlaczego pozostałe odpowiedzi są niepoprawne?

  • Opcje mówiące o "dodawaniu pól" i "zmianie struktury tabeli" dotyczą operacji na schemacie (typowo kojarzonych z ALTER). Takich uprawnień nie ma na liście (są tylko SELECT/INSERT/UPDATE), więc nie wynikają z polecenia.
  • Opcje mówiące o "wszystkich tabelach w bazie" są błędne, bo polecenie wskazuje konkretną tabelę. Aby nadać prawa szerzej, trzeba objąć nimi inne obiekty (np. schemat/bazę) zgodnie z możliwościami danego systemu.

Wskazówka egzaminacyjna: zawsze czytaj polecenie GRANT w dwóch krokach: (a) jakie czasowniki/uprawnienia są wymienione, (b) do jakiego obiektu po słowie ON się odnoszą. To zwykle eliminuje pomyłki między uprawnieniami do danych a uprawnieniami do struktury.

Dodatkowe pytania

Dodatkowe pytania (FAQ):

GRANT służy do nadawania uprawnień użytkownikom lub rolom.

W praktyce określasz: (1) jakie przywileje (np. odczyt, zapis), (2) do jakiego obiektu (tabela, widok), (3) komu je nadajesz. To podstawa kontroli dostępu w DB.

SELECT pozwala odczytywać wiersze, INSERT dodawać nowe rekordy, a UPDATE zmieniać wartości w istniejących rekordach.

To uprawnienia do pracy na danych (DML), a nie do zmiany struktury tabeli.

Zmiana struktury (np. dodanie kolumny) to inny typ operacji niż praca na danych.

Uprawnienia do danych to np. SELECT/INSERT/UPDATE, a do schematu zwykle potrzebujesz osobnych przywilejów (często kojarzonych z ALTER). Jeśli nie są wymienione w GRANT, nie są nadane.

Nie. Fragment ON klienci wskazuje konkretny obiekt (tabelę) o nazwie klienci.

Aby nadać uprawnienia do innych tabel, trzeba wykonać GRANT również na te tabele albo użyć mechanizmu obejmującego szerszy zakres, jeśli dany system to wspiera.

Zależy od systemu bazodanowego.

Zwykle sprawdza się to w widokach/systemowych tabelach z przywilejami lub komendami administracyjnymi. Na egzaminie pamiętaj: uprawnienia wynikają z GRANT oraz z ról, do których użytkownik należy.

To założenie upraszcza analizę: po wykonaniu polecenia ma on tylko te uprawnienia, które są wymienione w GRANT.

Dzięki temu nie musisz rozważać dziedziczenia uprawnień z ról ani wcześniejszych przydziałów.

Uprawnienia do danych dotyczą operacji na wierszach: odczyt, dodanie, zmiana, usunięcie.

Uprawnienia do struktury dotyczą schematu: dodanie kolumny, zmiana typu, tworzenie/usuwanie obiektów. W zadaniach szukaj słów "rekordy/dane" vs "pola/struktura".

Najczęstsze pomyłki to:

  • mylenie INSERT/UPDATE z operacjami zmiany schematu,
  • uznawanie, że uprawnienia działają na całą bazę zamiast na jedną tabelę,
  • pomijanie fragmentu po słowie ON, który definiuje zakres.

Nie. SELECT służy do odczytu.

Do modyfikacji danych potrzebujesz uprawnień takich jak INSERT (dodawanie), UPDATE (zmiana) lub DELETE (usuwanie). Sam odczyt nie daje prawa do zapisu.

Ćwicz na prostych scenariuszach: tworzenie użytkownika, nadawanie praw do jednej tabeli i testowanie operacji (odczyt/dodanie/zmiana).

Ucz się rozróżnienia: uprawnienia do obiektu (tabela) oraz rodzaj operacji (odczyt vs zapis vs zmiana schematu).

info

Około 67% zdających odpowiada poprawnie na to pytanie. średnie

Eksperci podkreślają: "Nie obejmuje to zmian struktury tabeli (np. ALTER) ani uprawnień do innych tabel w bazie."

Źródła:

  • PostgreSQL Documentation: GRANT — https://www.postgresql.org/docs/current/sql-grant.html (dostęp: 2026-02-18)
  • MySQL 8.0 Reference Manual: GRANT Statement — https://dev.mysql.com/doc/refman/8.0/en/grant.html (dostęp: 2026-02-18)
  • MariaDB Documentation: GRANT — https://mariadb.com/kb/en/grant/ (dostęp: 2026-02-18)

Materiały:

  • Dokumentacja systemu bazodanowego: sekcja o GRANT i uprawnieniach
  • Materiały z podstaw bezpieczeństwa baz danych i kontroli dostępu
  • Ćwiczenia praktyczne: tworzenie użytkowników i nadawanie uprawnień do tabel

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego