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 PRIVILEGES ON dane.* TO 'Jan'@'localhost'; Użytkownik Jan będzie mógł wykonywać

GRANT ALL PRIVILEGES ON dane.* TO 'Jan'@'localhost';
Użytkownik Jan będzie mógł wykonywać
A. jedynie operacje CREATE, ALTER, DROP na tabelach bazy dane.
B. wszystkie operacje na tabelach bazy dane.
C. wszystkie operacje na tabelach bazy dane oraz nadawać prawa innym użytkownikom.
D. jedynie operacje manipulowania danymi i zmienić jedynie swoje prawa.

Pytanie z egzaminu CKE, styczeń 2023 (arkusz EE.09-SG-23.01).

Polecenie GRANT ALL PRIVILEGES ON dane.* TO 'Jan'@'localhost'; nadaje użytkownikowi Jan zestaw wszystkich dostępnych uprawnień w obrębie bazy danych dane, czyli dla obiektów pasujących do dane.*. W praktyce oznacza to możliwość wykonywania operacji takich jak SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, INDEX czy inne typowe prawa zależne od wersji MySQL/MariaDB i poziomu nadania. Dlatego poprawne jest stwierdzenie, że Jan będzie mógł wykonywać wszystkie operacje na tabelach bazy dane. Ważny szczegół: zapis 'Jan'@'localhost' dotyczy tylko logowania z tego samego serwera, a nie z dowolnego komputera w sieci. Moim zdaniem to jest jeden z tych detali, które w administracji bazami naprawdę robią różnicę. Trzeba też pamiętać, że samo ALL PRIVILEGES nie oznacza automatycznie prawa do przekazywania uprawnień dalej. Do tego potrzebne byłoby dopisanie WITH GRANT OPTION. W dobrej praktyce produkcyjnej raczej unika się dawania ALL PRIVILEGES zwykłym kontom aplikacji. Lepiej stosować zasadę najmniejszych uprawnień, np. aplikacja sklepu często potrzebuje SELECT, INSERT i UPDATE, ale niekoniecznie DROP albo ALTER.
W tym poleceniu łatwo pomylić kilka podobnych pojęć, bo słowo ALL brzmi bardzo szeroko, ale ma ono konkretny zakres. GRANT ALL PRIVILEGES oznacza nadanie pełnego zestawu uprawnień do wskazanego obszaru, czyli tutaj do bazy dane i jej obiektów zapisanych jako dane.*. Nie jest to ograniczone wyłącznie do operacji strukturalnych typu CREATE, ALTER i DROP. Te polecenia należą do grupy DDL i faktycznie są częścią większego zestawu praw, ale nie wyczerpują znaczenia ALL PRIVILEGES. Jan może także wykonywać operacje manipulowania danymi, na przykład SELECT, INSERT, UPDATE i DELETE, jeśli mieszczą się w tym zakresie uprawnień. Z drugiej strony nie należy zakładać, że Jan będzie mógł nadawać prawa innym użytkownikom. W MySQL i MariaDB do przekazywania uprawnień dalej służy dodatkowa klauzula WITH GRANT OPTION. Jej tutaj nie ma, więc administrator daje Janowi szerokie prawa do pracy na bazie, ale nie daje mu automatycznie roli administratora uprawnień. Błędne jest też myślenie, że użytkownik może samodzielnie zmieniać swoje prawa. Uprawnienia są kontrolowane przez system przywilejów serwera bazy danych i zmienia je konto, które ma odpowiednie prawa administracyjne. Z mojego doświadczenia najczęstsza pomyłka polega na wrzuceniu do jednego worka pełnych praw do tabel i pełnej kontroli nad użytkownikami. To są powiązane, ale jednak różne sprawy.

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.