Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Bazy danych Administracja serwerem i bezpieczeństwo

GRANT ALL ON firmy TO 'adam'@'localhost'; GRANT ALTER, CREATE, DROP ON firmy TO 'anna'@'localhost'; GRANT SELECT, INSERT, UPDATE ON firmy TO...

GRANT ALL ON firmy TO 'adam'@'localhost';
GRANT ALTER, CREATE, DROP ON firmy TO 'anna'@'localhost';
GRANT SELECT, INSERT, UPDATE ON firmy TO 'tomasz'@'localhost';
W języku SQL, po wykonaniu przedstawionych poleceń GRANT, prawo do zmiany struktury tabeli oraz jej usuwania zostanie przypisane
A. Tomaszowi i Annie.
B. Tomaszowi i Adamowi.
C. Adamowi i Annie.
D. tylko Annie.

Pytanie z egzaminu CKE, czerwiec 2022 (arkusz E.14-SG-22.06).

W tym przypadku odpowiedź Adamowi i Annie jest właściwa, bo chodzi o dwa konkretne uprawnienia administracyjne do obiektu bazy danych: zmianę struktury tabeli oraz usunięcie tabeli. Zmiana struktury tabeli jest związana z uprawnieniem ALTER, np. dodanie kolumny, zmiana typu danych albo usunięcie indeksu. Usunięcie tabeli wymaga uprawnienia DROP, czyli możliwości skasowania całego obiektu z bazy, a nie tylko rekordów. Adam dostał GRANT ALL ON firmy, więc w praktyce otrzymuje komplet dostępnych praw do wskazanego obiektu, w tym ALTER i DROP. Anna dostała jawnie ALTER, CREATE, DROP, więc również może zmieniać strukturę i usuwać tabelę. Tomasz ma tylko SELECT, INSERT i UPDATE, czyli typowe uprawnienia do pracy na danych: odczyt, dopisywanie i modyfikacja rekordów. Moim zdaniem to dobry przykład pokazujący różnicę między operacjami DDL i DML. W dobrej praktyce produkcyjnej nie daje się GRANT ALL zwykłym użytkownikom, tylko przydziela minimalny zestaw uprawnień potrzebny do pracy, zgodnie z zasadą najmniejszych przywilejów.
W tym pytaniu łatwo pomylić operacje wykonywane na danych z operacjami wykonywanymi na strukturze bazy. Prawo do zmiany struktury tabeli oznacza uprawnienie ALTER. Dzięki niemu użytkownik może np. dodać kolumnę, zmienić definicję pola, przebudować indeks albo wprowadzić inne zmiany w schemacie tabeli. Prawo do usuwania tabeli oznacza DROP, czyli skasowanie całego obiektu bazy danych. To nie jest to samo co DELETE, które usuwa wiersze z tabeli, ale samą tabelę zostawia na miejscu. I tu właśnie często pojawia się typowy błąd myślowy: ktoś widzi słowo usuwanie i od razu kojarzy je z danymi, a w treści jest mowa o tabeli jako obiekcie strukturalnym. Tomasz ma SELECT, INSERT i UPDATE, więc może odczytywać rekordy, dodawać nowe oraz zmieniać istniejące dane, ale nie dostał ALTER ani DROP. Nie ma więc prawa do przebudowy tabeli ani jej skasowania. Anna ma podane wprost ALTER i DROP, dlatego spełnia warunek. Adam ma GRANT ALL, czyli komplet uprawnień na wskazanym obiekcie, więc też obejmuje to ALTER i DROP. W praktyce administracyjnej takie prawa są bardzo mocne i powinny być nadawane ostrożnie, bo przypadkowe DROP potrafi zrobić duży bałagan w systemie. Dlatego w realnych projektach lepiej rozdzielać role: inne konto do aplikacji, inne do migracji struktury, a jeszcze inne dla administratora.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.