KWALIFIKACJA INF3 - CZERWIEC 2017

PYTANIE NR 24.
Przedstawione polecenie SQL, użytkownikowi adam@localhost nadaje prawa
Ilustracja przedstawia polecenie SQL, które nadaje użytkownikowi 'adam@localhost' prawa do manipulowania danymi w tabeli
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Prawa "manipulowania danymi w tabeli" dotyczą operacji DML (np. odczyt i modyfikacje wierszy). Zarządzanie strukturą tabeli lub bazy to uprawnienia DDL/administracyjne (np. ALTER, CREATE, DROP). Jeśli polecenie GRANT wskazuje obiekt "tabela klienci" i przywileje DML, poprawna jest odpowiedź o manipulowaniu danymi.

Pełne wyjaśnienie:

W kontekście SQL rozróżnia się dwie główne grupy czynności:

  • Operacje na danych (DML) – dotyczą treści tabel, czyli wierszy i kolumn. Typowo są to działania związane z odczytem i zmianą rekordów, jak pobieranie, dodawanie, aktualizacja lub usuwanie danych.
  • Operacje na strukturze (DDL) – dotyczą definicji obiektów bazy, czyli np. tworzenia lub modyfikacji tabel, kolumn, indeksów czy relacji.

W poleceniach typu GRANT kluczowe są zwykle dwa elementy: jakie przywileje są nadawane oraz na jakim obiekcie (np. konkretnej tabeli lub całej bazie danych). Jeżeli polecenie przyznaje przywileje odpowiadające manipulacji rekordami i wskazuje tabelę klienci, to oznacza to uprawnienia do pracy na danych w tej tabeli, a nie do przebudowy jej struktury.

Odpowiedź "manipulowania danymi w tabeli klienci." jest więc zgodna z interpretacją uprawnień DML (dotyczących zawartości tabeli).

Pozostałe odpowiedzi są typowymi "pułapkami":

  • "zarządzania strukturą tabeli klienci." – sugeruje DDL (np. zmiana kolumn, typów danych, indeksów). To inny rodzaj uprawnień niż praca na danych.
  • "zarządzania strukturą bazy danych klienci." – dodatkowo myli poziom obiektu: baza danych to szerszy zakres niż pojedyncza tabela. Taka odpowiedź pasuje do uprawnień administracyjnych na poziomie bazy, nie do operacji na konkretnej tabeli.
  • "manipulowania danymi bazy danych klienci." – brzmi jak bardzo szeroki zakres (wszystkie tabele w bazie). Jeśli w poleceniu wskazany jest obiekt będący tabelą, taka interpretacja jest zbyt szeroka.

W praktyce egzaminacyjnej warto zapamiętać: DML = dane (rekordy), a DDL = struktura (definicje). Zawsze czytaj też fragment po ON, bo określa, czy przywileje dotyczą tabeli, schematu lub całej bazy.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Uprawnienia DML dotyczą pracy na danych w tabelach, czyli na rekordach. Obejmują typowo odczyt i modyfikacje danych (np. pobieranie, dodawanie, zmiana lub usuwanie wierszy). Nie służą do zmiany struktury tabel (kolumn, typów, indeksów).
DDL dotyczy definicji obiektów bazy (np. tworzenie i zmiana tabel), a DML dotyczy zawartości tabel (rekordów). Jeśli pytanie mówi o "strukturze", zwykle chodzi o DDL. Jeśli o "danych", to o DML.
Wskazuje to część po słowie ON. Jeżeli obiektem jest konkretna tabela, uprawnienia dotyczą tej tabeli. Gdy obiektem jest cała baza/schemat, zakres jest szerszy. Na egzaminie zawsze analizuj obiekt wskazany w GRANT.
"Struktura tabeli" oznacza definicję (kolumny, typy danych, klucze, indeksy), a "dane" to rekordy przechowywane w tabeli. Do struktury potrzebne są uprawnienia DDL (np. zmiany definicji), a do danych – uprawnienia DML (operacje na wierszach).
Tak. W wielu DBMS można ograniczyć uprawnienia do konkretnego obiektu, np. pojedynczej tabeli. To popularne rozwiązanie dla kont aplikacyjnych: dostają dostęp tylko do tych tabel, które są potrzebne do działania aplikacji.
To identyfikacja konta wraz z hostem (źródłem połączenia). Oznacza użytkownika "adam", który łączy się z maszyny lokalnej. W niektórych systemach DBMS to część definicji konta i wpływa na to, z jakich miejsc użytkownik może się logować.
Najczęściej myli się zakres (tabela vs baza) oraz typ uprawnień (DML vs DDL). Uczniowie wybierają też odpowiedź "szerszą" (baza danych), mimo że w GRANT wskazano konkretną tabelę. Pomaga czytanie od końca: najpierw obiekt po ON.
Nie. Dodawanie/usuwanie kolumn to zmiana struktury (DDL) i wymaga uprawnień administracyjnych do modyfikacji definicji tabeli. Uprawnienia do danych pozwalają co najwyżej na pracę na rekordach (np. dopisywanie, aktualizację, usuwanie wierszy).
Gdy konto ma służyć aplikacji (np. stronie WWW) do obsługi operacji CRUD. Wtedy ogranicza się je do odczytu i modyfikacji danych w potrzebnych tabelach, bez prawa zmiany struktury. To poprawia bezpieczeństwo i ogranicza skutki błędów aplikacji.
Przećwicz scenariusze: tworzenie użytkownika, nadawanie uprawnień do tabeli i do całej bazy oraz testowanie, co działa po zalogowaniu. Ucz się rozpoznawania słów "dane" vs "struktura" i czytania zakresu obiektu po ON.
info

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

W praktyce zawodowej kluczowe jest to, że prawa "manipulowania danymi w tabeli" dotyczą operacji DML (np. odczyt i modyfikacje wierszy).

Źródła:

  • MySQL 8.0 Reference Manual: "GRANT Statement" (sekcja składni i znaczenia przywilejów) https://dev.mysql.com/doc/refman/8.0/en/grant.html - dostęp 2026-02-27
  • MariaDB Knowledge Base: "GRANT" (opis przywilejów i zakresu ON) https://mariadb.com/kb/en/grant/ - dostęp 2026-02-27
  • PostgreSQL Documentation: "GRANT" (ogólne zasady nadawania uprawnień w SQL) https://www.postgresql.org/docs/current/sql-grant.html - dostęp 2026-02-27

Materiały:

  • Dokumentacja DBMS używanego na zajęciach (sekcja o GRANT/REVOKE i uprawnieniach do tabel/baz)
  • Materiały o bezpieczeństwie baz danych: zasada najmniejszych uprawnień, konta aplikacyjne
  • Ćwiczenia praktyczne: tworzenie użytkownika, nadawanie SELECT/INSERT/UPDATE/DELETE, testowanie efektów uprawnień

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego