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

Słowa kluczowe: GRANT w MySQL REVOKE w MySQL SELECT w SQL Uprawnienia użytkownika w MySQL

Polecenie REVOKE SELECT ON nazwa1 FROM nazwa2 w języku SQL umożliwia

A. usuwanie użytkownika z bazy.
B. nadawanie uprawnień z użyciem zdefiniowanego schematu.
C. odbieranie uprawnień użytkownikowi.
D. nadawanie praw do tabeli.

Pytanie z egzaminu CKE, wrzesień 2014 (arkusz E.14-X-14.08).

Polecenie REVOKE SELECT ON nazwa1 FROM nazwa2 służy do odebrania wcześniej nadanego uprawnienia SELECT wskazanemu użytkownikowi albo roli. W praktyce nazwa1 oznacza zwykle obiekt bazy danych, na przykład tabelę, widok lub czasem inny obiekt, a nazwa2 to konto użytkownika albo rola, której cofamy prawo odczytu danych. Czyli jeśli ktoś miał możliwość wykonywania zapytań SELECT na tabeli klienci, to po wykonaniu REVOKE SELECT ON klienci FROM jan; nie powinien już móc odczytywać rekordów z tej tabeli. Moim zdaniem to jedno z ważniejszych poleceń administracyjnych w SQL, bo dobrze pokazuje zasadę najmniejszych uprawnień: użytkownik ma mieć tylko te prawa, które są mu faktycznie potrzebne. W standardzie SQL oraz w systemach typu MySQL, PostgreSQL czy SQL Server rozróżnia się nadawanie uprawnień przez GRANT i odbieranie przez REVOKE. Dobra praktyka jest taka, żeby zarządzać uprawnieniami przez role, a nie każdemu użytkownikowi osobno, bo potem łatwiej utrzymać porządek i przeprowadzić audyt bezpieczeństwa.
W tym pytaniu łatwo pomylić polecenia administracyjne SQL, bo wszystkie dotyczą w pewnym sensie kontroli dostępu do bazy. REVOKE nie służy jednak do nadawania uprawnień, tylko do ich cofania. Nadawanie praw wykonuje się poleceniem GRANT, na przykład GRANT SELECT ON produkty TO sprzedawca; i to właśnie ono pozwala użytkownikowi albo roli czytać dane z konkretnej tabeli. Jeśli ktoś kojarzy słowo SELECT z pobieraniem danych, może błędnie uznać, że całe polecenie jakoś przyznaje dostęp do tabeli, ale kluczowym słowem jest tutaj REVOKE, czyli odebranie. Nie chodzi też o użycie schematu w sensie struktury bazy. Schemat może występować w nazwie obiektu, na przykład sklep.zamowienia, ale samo polecenie nie tworzy ani nie nadaje uprawnień za pomocą schematu. Również usuwanie użytkownika z bazy to inna operacja, zwykle DROP USER albo podobne polecenie zależne od konkretnego systemu zarządzania bazą danych. REVOKE może sprawić, że użytkownik straci dostęp do danych, ale konto nadal istnieje. Z mojego doświadczenia wynika, że najczęstszy błąd to wrzucanie do jednego worka komend GRANT, REVOKE i DROP USER. W administracji bazą danych trzeba je mocno rozróżniać: GRANT daje uprawnienia, REVOKE je odbiera, a DROP usuwa obiekty lub użytkowników. To ma duże znaczenie dla bezpieczeństwa i dla uniknięcia przypadkowego zablokowania albo skasowania konta.

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.