KWALIFIKACJA INF3 - CZERWIEC 2023 (test 2)

PYTANIE NR 25.
GRANT CREATE, ALTER ON sklep.* TO adam; 
Zakładając, że użytkownik adam wcześniej nie miał żadnych praw, polecenie SQL nada użytkownikowi prawa jedynie do
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
CREATE i ALTER to uprawnienia do operacji DDL, czyli tworzenia obiektów oraz zmiany ich struktury. Zakres sklep.* oznacza wszystkie tabele (i inne obiekty) w bazie sklep, a nie jedną tabelę. Polecenie nie nadaje praw do modyfikacji danych (INSERT/UPDATE).

Pełne wyjaśnienie:

Polecenie GRANT służy do nadawania uprawnień użytkownikowi. W podanym przykładzie nadawane są dwa prawa: CREATE oraz ALTER.

CREATE dotyczy tworzenia obiektów bazy danych (np. tabel). ALTER dotyczy zmiany struktury istniejących obiektów, np. dodania/usunięcia kolumny, zmiany typu danych kolumny, dodania indeksu. Są to typowe uprawnienia z obszaru DDL (Data Definition Language), a więc dotyczą schematu/struktury, nie samych danych.

Kluczowe jest też rozumienie zakresu sklep.*. Zapis baza.* oznacza, że uprawnienia odnoszą się do wszystkich tabel (oraz typowo innych obiektów w danym systemie) w obrębie wskazanej bazy sklep. Nie jest to pojedyncza tabela o nazwie "sklep", tylko baza danych "sklep" oraz dowolna tabela w niej (symbol "*").

Dlatego poprawne jest stwierdzenie, że użytkownik otrzyma prawa do tworzenia i zmiany struktury wszystkich tabel w bazie sklep.

Pozostałe odpowiedzi są błędne z następujących powodów:

  • Wariant mówiący o "tabeli sklep" pomija znaczenie .*, czyli zakresu obejmującego wiele tabel, i błędnie sprowadza uprawnienie do jednego obiektu.
  • Warianty o "wstawianiu i zmianie danych" dotyczą uprawnień DML, takich jak INSERT i UPDATE. W poleceniu ich nie ma, więc nie można wnioskować o możliwości modyfikacji danych.
  • Wariant o modyfikacji danych we wszystkich tabelach jest podwójnie mylący: rozpoznaje co prawda zakres "wszystkie tabele", ale przypisuje mu nie te typy uprawnień (DML zamiast DDL).

W praktyce egzaminacyjnej warto zapamiętać: CREATE/ALTER = schemat/struktura, a INSERT/UPDATE/DELETE = dane. Z kolei gwiazdka po nazwie bazy (baza.*) zwykle oznacza "wszystkie tabele w tej bazie".

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Zapis sklep.* oznacza zakres uprawnień dla wszystkich tabel (i typowo obiektów) w bazie danych sklep. Gwiazdka nie wskazuje jednej konkretnej tabeli, tylko "dowolną tabelę" w tej bazie.
Uprawnienie CREATE pozwala tworzyć obiekty bazy (np. tabele). To uprawnienie typu DDL, czyli związane ze strukturą bazy, a nie z modyfikacją danych w rekordach.
ALTER umożliwia zmianę struktury istniejących obiektów, np. dodanie kolumny, zmianę typu kolumny, dodanie indeksu. Nie oznacza to automatycznie prawa do edycji danych (to wymaga np. UPDATE).
Ponieważ CREATE i ALTER to uprawnienia DDL (definiowanie schematu). Zmiana danych w wierszach to DML i wymaga innych uprawnień, np. INSERT, UPDATE lub DELETE.
DDL dotyczy struktury: CREATE, ALTER, DROP. DML dotyczy danych: SELECT, INSERT, UPDATE, DELETE. Jeśli w poleceniu widzisz CREATE/ALTER, myśl o tabelach jako "szablonie", a nie o rekordach w środku.
Nie. Samo GRANT CREATE, ALTER nie przyznaje praw do wstawiania ani edycji rekordów. Do wstawiania potrzebny jest INSERT, a do zmiany istniejących rekordów UPDATE.
Poziom bazy (baza.*) stosuje się, gdy rola ma działać na wielu tabelach w jednej bazie. Poziom tabeli (np. baza.tabela) wybiera się, gdy trzeba ograniczyć dostęp tylko do wybranych tabel.
Najczęstszy błąd to odczytanie tego jako jednej tabeli "sklep". Drugi błąd to pominięcie znaczenia "*". Na egzaminie traktuj zapis .* jako skrót: "wszystkie tabele w tej bazie".
Ogólna idea jest podobna, ale szczegóły składni i zakresy uprawnień mogą się różnić między DBMS (np. MySQL, MariaDB, PostgreSQL). Na egzaminie ważne jest, aby rozpoznać kontekst i interpretować uprawnienia zgodnie z danym dialektem.
Ćwicz na realnym serwerze: twórz użytkowników, nadaj im SELECT/INSERT/UPDATE oraz CREATE/ALTER i sprawdzaj, co działa, a co daje błąd uprawnień. Rób krótką ściągę: DDL = struktura, DML = dane, DCL = GRANT/REVOKE.
info

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

Według specjalistów z branży: "CREATE i ALTER to uprawnienia do operacji DDL, czyli tworzenia obiektów oraz zmiany ich struktury."

Źródła:

  • MySQL 8.0 Reference Manual: GRANT Statement (Syntax and Privileges) - https://dev.mysql.com/doc/refman/8.0/en/grant.html - accessed 2026-02-27
  • MariaDB Knowledge Base: GRANT - https://mariadb.com/kb/en/grant/ - accessed 2026-02-27
  • MySQL 8.0 Reference Manual: Privileges Provided by MySQL - https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html - accessed 2026-02-27

Materiały:

  • Dokumentacja MySQL/MariaDB: polecenie GRANT i typy uprawnień
  • Materiały szkolne z administracji bazami danych w zakresie INF.3
  • Ćwiczenia praktyczne: tworzenie użytkowników i nadawanie uprawnień w DBMS

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego