KWALIFIKACJA INF3 - PAŹDZIERNIK 2016

PYTANIE NR 22.
W tabeli artykuly wykonano polecenia:
GRANT ALL PRIVILEGES ON artykuly TO jan;
REVOKE SELECT, UPDATE ON artykuly FROM jan;

Po ich wykonaniu użytkownik jan będzie miał prawa do

A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
GRANT ALL PRIVILEGES nadaje zestaw uprawnień do operacji na wskazanej tabeli, ale późniejszy REVOKE SELECT, UPDATE odbiera odczyt i aktualizację. Pozostają m.in. prawa do wstawiania i usuwania wierszy, więc jan może wypełniać tabelę danymi oraz usuwać dane, ale nie może ich przeglądać ani aktualizować.

Pełne wyjaśnienie:

Polecenie GRANT ALL PRIVILEGES ON artykuly TO jan przyznaje użytkownikowi szeroki zestaw uprawnień, ale tylko w zakresie wskazanej tabeli. W praktyce oznacza to możliwość wykonywania typowych operacji na istniejącym obiekcie tabeli (np. odczyt, dopisywanie, zmiana i usuwanie rekordów, a także część operacji administracyjnych na tej tabeli).

Następnie wykonano REVOKE SELECT, UPDATE ON artykuly FROM jan. To polecenie cofa dwa konkretne uprawnienia:

  • SELECT – czyli przeglądanie/odczyt danych,
  • UPDATE – czyli aktualizowanie istniejących wierszy.

Skoro odczyt (SELECT) i aktualizacja (UPDATE) zostały odebrane, użytkownik nie może ani przeglądać danych, ani ich modyfikować poprzez UPDATE. Pozostają natomiast uprawnienia, które nie zostały cofnięte, w szczególności:

  • wstawianie danych (INSERT) – dopisywanie nowych rekordów,
  • usuwanie danych (DELETE) – kasowanie rekordów.

Dlatego poprawna jest odpowiedź: "wypełniania danymi i usuwania danych."

Pozostałe odpowiedzi są błędne, bo zawierają operacje wyraźnie odebrane (przeglądanie = SELECT, aktualizacja = UPDATE) albo mylą poziomy uprawnień: tworzenie nowych tabel (CREATE TABLE) jest uprawnieniem na poziomie bazy, a nie pojedynczej tabeli, więc nie wynika z uprawnień nadanych dla samej tabeli.

Wskazówka egzaminacyjna: zawsze czytaj zakres po słowie ON. Jeśli jest nazwa tabeli, analizujesz prawa do tej tabeli; jeśli jest zakres całej bazy, dopiero wtedy w grę wchodzą uprawnienia typu tworzenie nowych obiektów.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
GRANT służy do nadawania uprawnień użytkownikowi lub roli do wykonywania operacji na obiektach bazy danych (np. tabelach). Kluczowe jest to, co znajduje się po ON: jeśli wskazana jest tabela, uprawnienia dotyczą tej tabeli, a nie całej bazy.
REVOKE to polecenie odbierające wcześniej nadane uprawnienia. Jeżeli użytkownik miał szeroki zestaw praw po GRANT, REVOKE może "odjąć" konkretne operacje (np. odczyt lub aktualizację), pozostawiając inne (np. wstawianie).
Ponieważ tworzenie nowych tabel dotyczy poziomu bazy danych, a nie pojedynczego obiektu. GRANT ALL zastosowany do konkretnej tabeli obejmuje operacje na już istniejącej tabeli. Aby móc tworzyć nowe tabele, potrzebne są uprawnienia nadane w szerszym zakresie (np. dla całej bazy).
Sprawdź fragment po słowie ON. Jeśli widzisz nazwę tabeli (np. baza.tabela), to uprawnienia są obiektowe i dotyczą tej tabeli. Jeśli widzisz zakres całej bazy (np. baza.*), to uprawnienia obejmują wiele obiektów i mogą dotyczyć także tworzenia nowych.
To podstawowy zestaw operacji CRUD. SELECT oznacza odczyt danych, INSERT wstawianie nowych rekordów, UPDATE aktualizowanie istniejących rekordów, a DELETE usuwanie rekordów. W zadaniach z GRANT/REVOKE najczęściej sprawdza się rozumienie tych czterech działań.
Tak. Uprawnienie do wstawiania (INSERT) jest niezależne od uprawnienia do odczytu (SELECT). W praktyce użytkownik może dodawać rekordy do tabeli, ale nie mieć prawa ich przeglądać. To bywa stosowane w systemach, gdzie np. rejestruje się zdarzenia, ale nie ujawnia historii.
Bo wielu zdających kojarzy "ALL PRIVILEGES" z pełnym dostępem i pomija fakt, że późniejsze REVOKE może odebrać odczyt (SELECT). To typowy błąd nieuwzględnienia kolejności poleceń i traktowania pierwszej informacji jako ostatecznej.
Najpierw wypisz uprawnienia wynikające z GRANT dla wskazanego obiektu. Następnie usuń z tej listy dokładnie te uprawnienia, które zostały cofnięte przez REVOKE. Na końcu porównaj wynik z odpowiedziami. To prosta procedura, która ogranicza pomyłki w zadaniach testowych.
Najczęstsze błędy to: mylenie poziomu uprawnień (tabela vs baza), utożsamianie "modyfikacji tabeli" z "tworzeniem tabeli", ignorowanie REVOKE oraz mylenie UPDATE z INSERT. Warto zawsze mapować operacje na znaczenia: odczyt, dopisanie, zmiana, usunięcie.
Przećwicz na małej bazie: utwórz tabelę, użytkownika i nadaj/odbierz prawa. Następnie sprawdzaj, które zapytania działają (odczyt, wstawianie, aktualizacja, usuwanie). Dodatkowo naucz się rozpoznawać słowa kluczowe w poleceniach i zawsze analizuj zakres po ON.
info

Około 42% zdających odpowiada poprawnie na to pytanie. trudne

Eksperci podkreślają: "GRANT ALL PRIVILEGES nadaje zestaw uprawnień do operacji na wskazanej tabeli, ale późniejszy REVOKE SELECT, UPDATE odbiera odczyt i aktualizację."

Źródła:

  • MySQL 8.0 Reference Manual: GRANT Statement (lista uprawnień i składnia), https://dev.mysql.com/doc/refman/8.0/en/grant.html - accessed 2026-03-13
  • MySQL 8.0 Reference Manual: REVOKE Statement (cofanie uprawnień), https://dev.mysql.com/doc/refman/8.0/en/revoke.html - accessed 2026-03-13
  • PostgreSQL Documentation (current): GRANT (zakres uprawnień i poziomy obiektów), https://www.postgresql.org/docs/current/sql-grant.html - accessed 2026-03-13

Materiały:

  • Dokumentacja systemu DBMS dotycząca GRANT/REVOKE i uprawnień obiektowych
  • Notatki/ściąga: mapa uprawnień (odczyt/wstawianie/aktualizacja/usuwanie) i ich wpływ na CRUD
  • Ćwiczenia praktyczne: tworzenie użytkowników i testowanie uprawnień na przykładowych tabelach

Aktualizacja pytania: 03.04.2026



Aktualizacja pytania: 03.04.2026
📡 Brak połączenia internetowego