KWALIFIKACJA INF3 - STYCZEŃ 2017

PYTANIE NR 27.
W języku MySQL należy zastosować polecenie REVOKE, aby użytkownikowi anna odebrać prawo do dokonywania zmian jedynie w definicji struktury bazy danych. Polecenie odpowiadające odebraniu tych praw ma postać
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Polecenie REVOKE służy do odebrania uprawnień. "Zmiany w definicji struktury" dotyczą operacji DDL, czyli m.in. CREATE, ALTER i DROP (tworzenie obiektów, zmiana ich definicji, usuwanie). Dlatego właściwa jest komenda odbierająca właśnie te przywileje dla wskazanego obiektu i użytkownika.

Pełne wyjaśnienie:

Pytanie dotyczy odebrania uprawnień do wykonywania zmian w definicji struktury bazy danych. W praktyce są to operacje typu DDL (Data Definition Language), czyli takie, które wpływają na schemat: tworzenie obiektów, modyfikowanie ich definicji oraz usuwanie.

W MySQL do cofania uprawnień służy polecenie REVOKE. Jeżeli chcemy odebrać prawa do zmian strukturalnych, typowo cofamy przywileje:

  • CREATE – prawo do tworzenia obiektów (np. tabel),
  • ALTER – prawo do zmiany definicji istniejących obiektów (np. kolumn, indeksów),
  • DROP – prawo do usuwania obiektów.

Dlatego odpowiedź "REVOKE CREATE ALTER DROP ON tabela1 FROM 'anna'@'localhost'" odpowiada odebraniu uprawnień typowo kojarzonych ze zmianą schematu.

Pozostałe propozycje są niepoprawne z następujących powodów:

  • "REVOKE ALL ..." odbierałoby (w ujęciu egzaminacyjnym) zbyt szeroki zestaw uprawnień, a pytanie wymaga odebrania praw jedynie do zmian w strukturze.
  • "REVOKE CREATE UPDATE DROP ..." miesza DDL z DML: UPDATE dotyczy modyfikacji danych w wierszach, a nie definicji struktury; dodatkowo brakuje kluczowego ALTER.
  • "REVOKE CREATE INSERT DELETE ..." również dotyczy w dużej części DML (INSERT, DELETE) i nie obejmuje typowej zmiany definicji obiektu (ALTER).

Wskazówka egzaminacyjna: gdy w treści pojawia się "struktura", "schemat", "definicja tabeli", najpierw myśl o DDL (CREATE/ALTER/DROP), a gdy "rekordy/dane" – o DML (SELECT/INSERT/UPDATE/DELETE).

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Uprawnienia DDL dotyczą operacji zmieniających strukturę obiektów bazy, a nie dane w wierszach. Najczęściej są to CREATE (tworzenie), ALTER (modyfikacja definicji) i DROP (usuwanie). Ich nadanie lub odebranie kontroluje, kto może zmieniać schemat.
REVOKE cofa wcześniej nadane przywileje. Podaje się listę uprawnień, zakres po ON (np. tabela lub baza) oraz konto w formie 'użytkownik'@'host'. W efekcie użytkownik nie może wykonywać wskazanych operacji w podanym zakresie.
ALTER odpowiada za modyfikację istniejącej definicji obiektu, np. dodanie kolumny, zmianę typu danych czy utworzenie indeksu. Jeśli pytanie dotyczy "zmian w definicji struktury", brak ALTER zwykle oznacza, że odpowiedź nie obejmuje pełnego zestawu typowych działań DDL.
UPDATE zmienia dane w istniejących rekordach (DML), np. aktualizuje wartości w kolumnach. ALTER zmienia schemat (DDL), np. dodaje kolumnę lub zmienia jej typ. To częsta pułapka: "zmiany" w treści nie zawsze oznaczają zmianę danych.
DROP usuwa cały obiekt bazy (np. tabelę) wraz z jego definicją, czyli jest operacją DDL. DELETE usuwa wybrane wiersze z tabeli, pozostawiając strukturę bez zmian (DML). Jeśli celem jest ograniczenie zmian schematu, DROP jest jednym z uprawnień do cofnięcia.
To zapis konta jako para użytkownik i host. Oznacza, że uprawnienia dotyczą użytkownika anna łączącego się z tej samej maszyny (localhost). W MySQL to istotne, bo ten sam użytkownik może mieć różne uprawnienia w zależności od hosta połączenia.
Zwykle nie, jeśli w treści jest warunek typu "jedynie" lub "tylko te prawa". REVOKE ALL odbiera bardzo szeroki zestaw przywilejów i może naruszać wymaganie minimalnej ingerencji. Na egzaminie dobiera się precyzyjnie te uprawnienia, które odpowiadają wskazanemu zakresowi (np. DDL).
Do modyfikacji danych (DML) zalicza się głównie: INSERT (dodawanie wierszy), UPDATE (zmiana wartości) i DELETE (usuwanie wierszy). Nie dotyczą one definicji tabeli, więc nie są właściwe, gdy pytanie mówi o zmianach w strukturze/schemacie.
W praktyce administracyjnej używa się poleceń pokazujących przywileje danego konta (np. w dokumentacji MySQL opisano komendy do podglądu grantów). W zadaniach egzaminacyjnych kluczowe jest rozpoznanie, które przywileje odpowiadają DDL, a które DML, aby poprawnie je nadać lub odebrać.
Najczęstsze pomyłki to: mylenie DDL z DML (wybieranie INSERT/UPDATE zamiast ALTER), odbieranie zbyt szerokich praw (ALL mimo warunku "jedynie"), oraz nieuwzględnianie, że konto ma postać 'user'@'host'. Warto czytać uważnie słowo "struktura/schemat".
info

To pytanie poprawnie rozwiązuje 47% zdających egzamin. trudne

Według specjalistów z branży: "Polecenie REVOKE służy do odebrania uprawnień."

Źródła:

  • MySQL 8.0 Reference Manual: REVOKE Statement, https://dev.mysql.com/doc/refman/8.0/en/revoke.html - accessed 2026-02-27
  • MySQL 8.0 Reference Manual: GRANT Statement, https://dev.mysql.com/doc/refman/8.0/en/grant.html - 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:

  • Oficjalna dokumentacja MySQL: składnia REVOKE oraz lista przywilejów
  • Ćwiczenia z tworzenia ról/użytkowników i testowania uprawnień na przykładowej bazie
  • Notatki porównujące DDL vs DML (tabela: operacja → typ uprawnień)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego