KWALIFIKACJA INF3 - CZERWIEC 2022

PYTANIE NR 25.
Po wydaniu polecenia SQL prezentowanego w ramce użytkownik Ela będzie mógł
Ilustracja przedstawia polecenie SQL, które jest kluczowe w kontekście egzaminu zawodowego dla technika programisty,
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź "wykonywać wszystkie akcje na danych" pasuje do sytuacji, gdy polecenie nadaje użytkownikowi pełny zestaw uprawnień DML do wskazanego obiektu (np. odczyt oraz modyfikacje rekordów).
Opcje dotyczące "struktury tabel" odnoszą się do DDL (np. ALTER/CREATE), czyli innej klasy uprawnień.

Pełne wyjaśnienie:

W bazach danych rozróżnia się dwa główne obszary działań:

  • operacje na danych (DML) – praca na rekordach, czyli np. odczyt, dopisywanie, zmiana i usuwanie wierszy,
  • operacje na strukturze (DDL) – zmiana definicji obiektów, np. tworzenie tabel, zmiana kolumn, modyfikacja kluczy, usuwanie obiektów.

Jeżeli polecenie SQL z ramki nadaje użytkownikowi Ela komplet uprawnień związanych z pracą na danych w danym obiekcie (typowo zestaw uprawnień DML), to poprawna jest odpowiedź: "wykonywać wszystkie akcje na danych." Oznacza to, że użytkownik może wykonywać operacje obejmujące zarówno odczyt, jak i modyfikacje zawartości (a nie tylko wybrany podzbiór, np. samo dopisywanie).

Dlaczego pozostałe odpowiedzi są niepoprawne?

  • "jedynie dodawać i modyfikować dane." – ta odpowiedź opisuje sytuację, w której uprawnienia są ograniczone (np. brak prawa odczytu lub brak prawa usuwania). Nie jest to "pełny" zakres działań na danych.
  • "jedynie tworzyć i modyfikować strukturę tabel." – odnosi się do DDL, czyli projektowania/zmiany schematu. To inny typ uprawnień niż te potrzebne do pracy na rekordach.
  • "wykonywać wszystkie operacje na strukturze danych." – również dotyczy DDL (pełnej administracji schematem), a nie operacji na danych. W praktyce takie uprawnienia są zwykle zarezerwowane dla administratora lub właściciela schematu.

W kontekście bezpieczeństwa aplikacji internetowych (INF.3) kluczowa jest zasada minimalnych uprawnień: kontu używanemu przez aplikację nadaje się tylko te przywileje, które są konieczne do działania (najczęściej DML do wybranych tabel), a uprawnienia do zmiany struktury (DDL) pozostawia się kontom administracyjnym.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Uprawnienia DML dotyczą pracy na danych (rekordach) w tabelach lub widokach. Obejmują typowo odczyt i modyfikacje zawartości, np. możliwość pobierania wierszy oraz ich wstawiania, zmiany i usuwania. Nie dotyczą one zmiany definicji tabel.
DDL dotyczy struktury bazy: tworzenia, zmiany i usuwania obiektów (tabel, indeksów, kolumn). DML dotyczy danych w tych obiektach. Na egzaminie często myli się "modyfikację danych" (DML) z "modyfikacją struktury" (DDL), dlatego warto rozdzielać te pojęcia.
GRANT nadaje wskazanemu użytkownikowi lub roli określone przywileje do obiektu (np. tabeli). Zakres zależy od listy przywilejów w poleceniu. W praktyce GRANT jest elementem kontroli dostępu w bazie i służy do bezpiecznego dzielenia uprawnień.
Uprawnienia DDL (np. do zmiany tabel) zwiększają ryzyko uszkodzenia schematu przez błąd aplikacji lub atak. Konto aplikacji powinno zwykle mieć tylko niezbędne uprawnienia DML do konkretnych tabel. Zmiany struktury wykonuje się osobnym kontem administracyjnym.
Najczęściej spotkasz uprawnienia pozwalające odczytywać i zmieniać rekordy, czyli możliwość pobierania danych oraz wykonywania operacji wstawiania, aktualizacji i usuwania. Dokładne nazwy przywilejów zależą od systemu bazy danych, ale sens jest wspólny: kontrola nad danymi, nie nad schematem.
Zwykle tak: pełny zakres działań na danych obejmuje także kasowanie wierszy, nie tylko dopisywanie i edycję. Na testach warto upewnić się, czy odpowiedź "wszystkie akcje" obejmuje cały pakiet operacji na danych, a nie wybrany fragment (np. bez usuwania).
Jeśli mowa o rekordach, wierszach, wartościach w kolumnach lub "zawartości" tabeli, to chodzi o dane (DML). Jeśli pojawiają się pojęcia kolumn, typów danych, kluczy, indeksów, tworzenia/usuwania tabel, to chodzi o strukturę (DDL). To prosta heurystyka do zadań INF.3.
Sformułowanie "struktura danych" bywa mylone z "danymi w tabeli". W SQL "struktura" zwykle oznacza schemat (definicję obiektu), a nie rekordy. W zadaniach o uprawnieniach często sprawdza się, czy zdający rozróżnia przywileje do treści tabeli od przywilejów do jej definicji.
Najczęstsze błędy to: automatyczne uznanie, że użytkownik może "wszystko" (także DDL), mylenie uprawnień do danych z uprawnieniami do schematu oraz pomijanie faktu, że przywileje są nadawane do konkretnego obiektu. Warto czytać, co i do czego jest nadawane.
Najskuteczniejsze są krótkie ćwiczenia w bazie: utwórz użytkownika testowego, nadaj mu tylko część uprawnień, a potem sprawdź, które operacje działają, a które są blokowane. Utrwalaj podział na DML/DDL i dopasowuj odpowiedzi do tego, czy zadanie mówi o danych czy o strukturze.
info

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

Źródła:

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

Materiały:

  • Dokumentacja systemu bazy danych używanej na zajęciach (sekcja o GRANT/REVOKE i uprawnieniach)
  • Notatki/rozdział z kursu SQL: podział na DDL, DML, DCL
  • Ćwiczenia praktyczne: tworzenie użytkowników i nadawanie minimalnych uprawnień do tabel

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego