GRANT i REVOKE – nadawanie i odbieranie uprawnień w bazie danych SQL – Kurs SQL
Omówimy teraz polecenia: GRANT i REVOKE, czyli nadawanie i odbieranie uprawnień dla użytkownika w bazie danych.
Pierwszym etapem tworzenia bazy danych jest stworzenie tabel w których przechowywane będą później wszelkie dane. Zanim jednak do tego przystąpimy niektóre serwery będą wymagały zalogowania się przy pomocy nazwy użytkownika i jego hasła. Możemy w tym przypadku korzystać z konta administratora skonfigurowanego podczas instalacji serwera baz danych. Innym rozwiązaniem jest utworzenie nowego użytkownika i dodanie go do bazy danych.
Powyższą czynność wykonamy przy użyciu polecenia GRANT, którego składnia jest następująca:
GRANT lista_praw_dostępu ON nazwa_tabeli TO nazwa_uzytkownika
Pole „lista_praw_dostępu” może zawierać jedno, lub kilka z poniższych uprawnień:
• SELECT– odczytanie danych z tabeli
• INSERT – wstawianie danych do tabeli
• UPDATE – modyfikowanie danych w tabeli
• DELETE – usunięcie danych z tabeli
• REFERENCE – odwoływanie się do innych tabel
• CREATE – tworzenie nowych tabel i baz danych
• DROP – usuwanie tabel oraz baz danych
• ALL PRIVILEGES – wszystkie dostępne uprawnienia
Pole „nazwa tabeli” określa tabelę do której przyznajemy uprawnienia użytkownikowi wskazanemu w „nazwa użytkownika”.
Przykład 1:
Utworzymy użytkownika o nazwie „biuro” któremu nadamy prawa tylko do odczytu, wstawiania oraz modyfikowania danych, a więc SELECT, INSERT, UPDATE dla tabeli o nazwie „klienci”.
GRANT SELECT, INSERT, UPDATE ON klienci TO biuro
Przykład 2:
Tworzymy użytkownika o nazwie „szef” któremu nadajemy wszelkie możliwe uprawnienia dla tabeli „klienci”.
GRANT ALL PRIVILEGES ON klienci TO szef
Przykład 3:
W pierwszym przykładzie utworzyliśmy użytkownika o nazwie „biuro” nadając mu prawa tylko do odczytu, wstawiania oraz modyfikowania danych w tabeli. Teraz chcielibyśmy aby mógł również usuwać dane z tabeli „klienci”.
W tym przypadku możemy ponownie skorzystać z polecenia GRANT podając nazwę wszystkich praw dla danego użytkownika.
GRANT SELECT, INSERT, UPDATE, DELETE ON klienci TO biuro
SQL umożliwia także odbieranie wcześniej nadanych uprawnień, a służy do tego polecenie REVOKE, którego składnia jest następująca:
REVOKE lista_praw_dostępu ON nazwa_tabeli FROM nazwa_uzytkownika
Przykład:
Stwierdziliśmy, iż użytkownik „biuro” nie powinien mieć możliwości wstawiania nowych danych do tabeli „klienci”. Należy więc usunąć mu prawo używania polecenia INSERT.
REVOKE INSERT ON klienci FROM biuro
Jeżeli nie wiesz jak dodać użytkownika do bazy danych zapraszam do zapoznania się z artykułem: CREATE USER – tworzenie użytkownika w bazie danych SQL