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

Które z poleceń nadaje najniższy poziom uprawnień użytkownikowi uczen pod względem modyfikacji danych i struktury tabel?

A.
GRANT DROP ON szkola.przedmioty TO uczen;
B.
GRANT ALTER, SELECT ON szkola.przedmioty TO uczen;
C.
GRANT INSERT, DROP ON szkola.przedmioty TO uczen;
D.
GRANT SELECT ON szkola.przedmioty TO uczen;

Pytanie z egzaminu CKE, czerwiec 2020 (arkusz E.14-SG-20.06).

Polecenie GRANT SELECT ON szkola.przedmioty TO uczen; nadaje użytkownikowi uczen najniższy poziom uprawnień spośród podanych możliwości, jeśli patrzymy na modyfikację danych i struktury tabel. SELECT pozwala tylko odczytywać dane z tabeli przedmioty, czyli wykonywać zapytania typu SELECT * FROM szkola.przedmioty;. Użytkownik nie może dopisywać rekordów, usuwać tabeli, zmieniać jej kolumn ani przebudowywać struktury. To jest zgodne z zasadą najmniejszych uprawnień, bardzo ważną w administracji bazami danych: użytkownik dostaje tylko te prawa, które są mu naprawdę potrzebne do pracy. Moim zdaniem to jedna z najważniejszych praktyk bezpieczeństwa, bo jeden źle nadany przywilej potrafi narobić sporo bałaganu. W praktyce konto ucznia w systemie szkolnym mogłoby mieć dostęp tylko do podglądu listy przedmiotów, ocen albo planu zajęć. Do modyfikowania tabel lepiej używać oddzielnych kont, np. dla administratora lub aplikacji z dokładnie opisanym zakresem działania. Dzięki temu ogranicza się ryzyko przypadkowego usunięcia danych, ataku SQL injection albo zwykłej pomyłki użytkownika.
W tym pytaniu łatwo pomylić samo nadawanie uprawnień poleceniem GRANT z poziomem uprawnień, które są faktycznie przekazywane użytkownikowi. Najbezpieczniejsze nie jest to polecenie, które wygląda najkrócej, tylko to, które przyznaje najmniej możliwości ingerencji w dane lub strukturę tabeli. Uprawnienie INSERT pozwala dodawać nowe rekordy do tabeli, więc użytkownik może już zmieniać zawartość bazy. To nie jest tylko odczyt, ale realna modyfikacja danych. Uprawnienie DROP jest jeszcze bardziej ryzykowne, bo pozwala usuwać obiekty bazy, na przykład tabelę. W środowisku produkcyjnym takie prawo daje się bardzo ostrożnie, zwykle tylko administratorom albo kontom technicznym używanym przy migracjach. ALTER również nie jest niskim poziomem dostępu, ponieważ umożliwia zmianę struktury tabeli, np. dodawanie kolumn, zmianę typów danych albo modyfikację definicji obiektu. Nawet jeśli obok ALTER występuje SELECT, to obecność prawa do zmiany struktury powoduje, że zestaw uprawnień jest znacznie szerszy. Typowy błąd myślowy polega na uznaniu, że skoro użytkownik nie ma UPDATE lub DELETE, to dostęp jest mało groźny. W praktyce DROP i ALTER mogą być bardziej niebezpieczne niż zwykła edycja pojedynczych rekordów, bo wpływają na całą tabelę i działanie aplikacji. Z dobrych praktyk wynika, że zwykły użytkownik, taki jak uczen, powinien dostać najwyżej SELECT, jeżeli jego zadaniem jest tylko przeglądanie informacji. Dopiero po konkretnej analizie potrzeb nadaje się szersze prawa, najlepiej osobno dla odczytu, zapisu i administracji strukturą bazy.

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.