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 SELECT, INSERT, UPDATE ON klienci TO anna; Zakładając, że użytkownik wcześniej nie miał żadnych praw, polecenie SQL nada użytkownikowi anna...

GRANT SELECT, INSERT, UPDATE ON klienci TO anna;
Zakładając, że użytkownik wcześniej nie miał żadnych praw, polecenie SQL nada użytkownikowi anna prawa jedynie do
A. wybierania, wstawiania oraz aktualizacji danych wszystkich tabel w bazie o nazwie klienci.
B. wybierania, dodawania pól oraz zmiany struktury tabeli o nazwie klienci.
C. wybierania, wstawiania oraz aktualizacji danych tabeli o nazwie klienci.
D. wybierania, dodawania pól oraz zmiany struktury wszystkich tabel w bazie o nazwie klienci.

Pytanie z egzaminu CKE, czerwiec 2021 (arkusz EE.09-SG-21.06).

Polecenie GRANT SELECT, INSERT, UPDATE ON klienci TO anna; nadaje użytkownikowi anna trzy konkretne uprawnienia do obiektu o nazwie klienci. W typowej składni SQL, np. w MySQL lub MariaDB, SELECT pozwala odczytywać dane z tabeli, INSERT pozwala dopisywać nowe rekordy, a UPDATE pozwala zmieniać wartości w już istniejących rekordach. Ważne jest to, że chodzi o dane w tabeli, a nie o zmianę jej struktury. Użytkownik anna może więc np. wykonać zapytanie SELECT * FROM klienci, dodać nowego klienta poleceniem INSERT INTO klienci albo poprawić numer telefonu klienta przez UPDATE klienci SET telefon = ... WHERE id = .... Moim zdaniem to bardzo praktyczny przykład zasady najmniejszych uprawnień: użytkownik dostaje tylko te prawa, które są mu potrzebne do pracy, a nie pełną kontrolę nad bazą. Nie otrzymuje tu prawa DELETE, więc nie może usuwać rekordów, ani ALTER, więc nie może dodawać kolumn czy zmieniać definicji tabeli. W administracji bazami danych to jest dobra praktyka bezpieczeństwa, bo ogranicza skutki pomyłek i ewentualnego przejęcia konta.
W tym poleceniu łatwo pomylić operacje na danych z operacjami na strukturze bazy, i właśnie stąd biorą się najczęstsze błędy. Uprawnienia SELECT, INSERT oraz UPDATE dotyczą rekordów zapisanych w tabeli. SELECT oznacza odczyt, INSERT dopisanie nowego wiersza, a UPDATE modyfikację istniejących wartości. Nie ma tu natomiast żadnego uprawnienia typu ALTER, CREATE czy DROP, które służą do zmiany schematu bazy danych, dodawania pól, tworzenia tabel albo usuwania obiektów. Jeżeli ktoś interpretuje INSERT jako dodawanie pól, to miesza dodawanie rekordu z dodawaniem kolumny. To są dwie zupełnie różne sprawy w SQL, choć na pierwszy rzut oka słowo dodawanie może mylić. Druga pułapka dotyczy fragmentu ON klienci. W podanym zapisie klienci jest nazwą obiektu, najczęściej tabeli, do której przydzielane są uprawnienia. Nie oznacza to automatycznie całej bazy danych o tej nazwie ani wszystkich tabel w bazie. W wielu systemach, gdy chce się nadać prawa do wszystkich tabel w konkretnej bazie, używa się zapisu w stylu baza.* albo podobnego, zależnie od systemu zarządzania bazą. Tutaj takiego zakresu nie ma. Z mojego doświadczenia warto zawsze czytać GRANT jak zdanie: nadaj konkretne prawa, na konkretny obiekt, konkretnemu użytkownikowi. Wtedy widać, że anna dostaje możliwość pracy na danych tabeli klienci, ale nie dostaje uprawnień administracyjnych ani projektowych do modyfikowania struktury tabeli czy całej 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.