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

W języku SQL wykonano przedstawione w ramce polecenia GRANT. Kto będzie miał prawo do przeglądania danych oraz ich zmiany?

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';
A. Tylko Tomasz
B. Tomasz i Anna
C. Adam i Anna
D. Tomasz i Adam
Poprawna odpowiedź to Tomasz i Adam, bo trzeba rozróżnić uprawnienia do danych od uprawnień do struktury bazy. Adam otrzymał GRANT ALL ON firmy, czyli pełny zestaw uprawnień do wskazanego obiektu firmy. W praktyce oznacza to między innymi możliwość wykonywania operacji SELECT, INSERT, UPDATE, DELETE, a często także operacji administracyjnych zależnie od systemu bazodanowego i zakresu nadania. Czyli Adam może zarówno przeglądać dane, jak i je zmieniać. Tomasz dostał dokładnie te uprawnienia, które pasują do treści pytania: SELECT pozwala czytać rekordy, INSERT dodawać nowe dane, a UPDATE modyfikować istniejące rekordy. To wystarcza, żeby mówić o przeglądaniu oraz zmianie danych. Anna ma ALTER, CREATE i DROP, czyli uprawnienia typu DDL, związane raczej ze strukturą: tworzeniem tabel, zmianą definicji tabel, usuwaniem obiektów. Moim zdaniem to jest klasyczna pułapka egzaminacyjna, bo zmiana tabeli nie oznacza automatycznie zmiany danych w tabeli. W dobrych praktykach produkcyjnych zwykle nie daje się GRANT ALL zwykłym użytkownikom, tylko stosuje zasadę najmniejszych uprawnień: użytkownik dostaje tylko SELECT, INSERT, UPDATE lub inne prawa faktycznie potrzebne do pracy.
W tym pytaniu najłatwiej pomylić dwa różne światy SQL: operacje na danych i operacje na strukturze bazy. Prawo do przeglądania danych oznacza zwykle SELECT, natomiast prawo do ich zmiany wiąże się z poleceniami DML, takimi jak INSERT, UPDATE, ewentualnie DELETE. Tomasz ma SELECT, INSERT i UPDATE, więc może odczytywać rekordy oraz dodawać i modyfikować dane. Adam ma ALL, czyli szeroki komplet uprawnień, w którym zawierają się również prawa do odczytu i modyfikacji danych. Dlatego pominięcie Adama byłoby błędem, bo ALL nie jest osobnym, wąskim prawem, tylko zbiorem wielu uprawnień. Z drugiej strony Anna nie powinna być traktowana jako osoba mająca prawo do pracy na danych, mimo że jej uprawnienia wyglądają mocno. ALTER, CREATE i DROP dotyczą głównie obiektów bazy danych: tabel, indeksów, schematów czy innych elementów strukturalnych. Można powiedzieć, że Anna może przebudować magazyn, ale niekoniecznie ma prawo czytać i zmieniać towary leżące na półkach. To trochę uproszczenie, ale dobrze oddaje sens. Typowy błąd polega na tym, że ktoś widzi ALTER albo DROP i uznaje je za mocniejsze od SELECT oraz UPDATE w każdym kontekście. Technicznie są to uprawnienia wysokiego ryzyka, ale nie odpowiadają bezpośrednio na pytanie o przeglądanie i zmianę rekordów. W administracji bazami danych warto zawsze sprawdzać, czy mówimy o DDL, czyli definicji struktury, czy o DML, czyli manipulacji danymi. To rozróżnienie bardzo często decyduje o poprawnej interpretacji poleceń GRANT.

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.