KWALIFIKACJA INF3 - CZERWIEC 2020

PYTANIE NR 25.
Które polecenie nadaje użytkownikowi uczen wyłącznie uprawnienie do odczytu danych z tabeli (bez modyfikacji danych i bez zmiany struktury tabeli)?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Uprawnienie SELECT pozwala jedynie odczytywać dane (wykonywać zapytania) i nie daje możliwości zmiany rekordów ani struktury tabeli. INSERT umożliwia dopisywanie wierszy, ALTER zmienia definicję tabeli, a DROP usuwa tabelę, więc są to uprawnienia modyfikujące lub destrukcyjne.

Pełne wyjaśnienie:

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.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Polecenie GRANT nadaje użytkownikowi (lub roli) określone uprawnienia do obiektu bazy danych, np. tabeli. Dzięki temu można kontrolować, kto może odczytywać dane, kto może je zmieniać, a kto może modyfikować strukturę tabel.
Uprawnienie SELECT pozwala wyłącznie na odczyt danych (zapytania zwracające wyniki). Nie pozwala dopisywać rekordów, edytować ich ani usuwać. Nie umożliwia też zmian struktury tabeli, bo do tego służą inne uprawnienia, np. ALTER.
INSERT pozwala dodać nowe wiersze, ale nie daje prawa do zmiany już istniejących rekordów ani ich usuwania. Z tego powodu często traktuje się go jako "najłagodniejsze" uprawnienie modyfikujące dane, w porównaniu z UPDATE (edycja) i DELETE (usuwanie).
Uprawnienie ALTER pozwala zmieniać strukturę tabeli, np. dodawać lub usuwać kolumny, zmieniać typy danych, modyfikować klucze i ograniczenia. To uprawnienie jest zwykle zarezerwowane dla administratorów, bo wpływa na działanie aplikacji i spójność danych.
DROP umożliwia usunięcie całej tabeli (zwykle wraz z danymi). To operacja skrajnie destrukcyjna: po jej wykonaniu aplikacja może przestać działać, a odtworzenie danych może wymagać kopii zapasowej. Dlatego DROP rzadko nadaje się zwykłym użytkownikom.
Zasada least privilege oznacza, że użytkownik dostaje tylko takie uprawnienia, które są niezbędne do wykonania jego zadań. Jeśli ktoś ma tylko przeglądać dane, nadaje się SELECT. Ogranicza to skutki błędów, pomyłek i potencjalnych ataków na bazę.
Tak. W GRANT można podać listę uprawnień, np. INSERT i UPDATE dla tej samej tabeli. Trzeba jednak uważać, bo dołączenie jednego "mocnego" uprawnienia (np. DROP lub ALTER) znacząco zwiększa możliwości i ryzyko, nawet jeśli obok jest SELECT.
Częsty błąd to mylenie "najniższego uprawnienia ogółem" z "najniższym uprawnieniem modyfikującym". Inny błąd to nierozróżnianie modyfikacji danych (INSERT/UPDATE/DELETE) od modyfikacji struktury (ALTER/DROP). Pomaga zapamiętać, że SELECT to tylko odczyt.
Gdy konto ma służyć do raportowania, podglądu danych, pracy na przykładach (np. w szkole) albo testów, w których nie wolno zmieniać bazy. Taki dostęp ogranicza ryzyko przypadkowych zmian i jest typowy dla użytkowników "read-only".
Warto grupować uprawnienia według skutków: SELECT = odczyt; INSERT/UPDATE/DELETE = modyfikacja danych; ALTER = zmiana struktury; DROP = usunięcie obiektu. Na egzaminie analizuj każde słowo uprawnienia pod kątem tego, co realnie umożliwia.
info

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

Eksperci podkreślają: "Uprawnienie SELECT pozwala jedynie odczytywać dane (wykonywać zapytania) i nie daje możliwości zmiany rekordów ani struktury tabeli."

Źródła:

  • PostgreSQL Documentation: GRANT — SQL Command Reference, https://www.postgresql.org/docs/current/sql-grant.html (dostęp: 2026-03-02)
  • MySQL 8.0 Reference Manual: GRANT Statement, https://dev.mysql.com/doc/refman/8.0/en/grant.html (dostęp: 2026-03-02)
  • Microsoft Learn: GRANT (Transact-SQL), https://learn.microsoft.com/en-us/sql/t-sql/statements/grant-transact-sql (dostęp: 2026-03-02)

Materiały:

  • Dokumentacja DBMS: rozdział o poleceniach GRANT/REVOKE i uprawnieniach
  • Ćwiczenia laboratoryjne: tworzenie użytkownika i nadawanie uprawnień do tabeli
  • Notatki o zasadzie least privilege w administracji bazami danych

Aktualizacja pytania: 03.04.2026



Aktualizacja pytania: 03.04.2026
📡 Brak połączenia internetowego