Zaawansowane zarządzanie uprawnieniami w MySQL – GRANT i REVOKE

1. Wstęp

W poprzedniej lekcji nauczyliśmy się, jak tworzyć użytkowników i nadawać im podstawowe uprawnienia za pomocą GRANT. Teraz rozszerzymy temat o bardziej zaawansowane aspekty zarządzania uprawnieniami oraz sposób ich cofania przy użyciu REVOKE.


2. Nadawanie uprawnień do konkretnych tabel i kolumn

Oprócz przyznawania uprawnień do całej bazy danych możemy nadać uprawnienia tylko do konkretnych tabel lub nawet pojedynczych kolumn.

Przykład 1: Nadawanie uprawnień do jednej tabeli

GRANT SELECT, INSERT ON sklep.zamowienia TO 'sprzedawca'@'localhost';

Użytkownik sprzedawca może teraz pobierać dane (SELECT) i dodawać nowe zamówienia (INSERT), ale nie może ich edytować ani usuwać.

Przykład 2: Nadawanie uprawnień do konkretnej kolumny

Jeśli chcemy, aby użytkownik mógł tylko czytać pewne kolumny, możemy zrobić to tak:

GRANT SELECT (imie, nazwisko) ON sklep.klienci TO 'sprzedawca'@'localhost';

Teraz sprzedawca może zobaczyć tylko imię i nazwisko klientów, ale nie inne ich dane.


3. Cofanie uprawnień – REVOKE

Gdy użytkownik nie powinien już mieć dostępu do określonych operacji, możemy cofnąć jego uprawnienia.

Przykład 3: Cofanie uprawnień do tabeli

REVOKE INSERT ON sklep.zamowienia FROM 'sprzedawca'@'localhost';

Teraz użytkownik nie może już dodawać nowych zamówień.

Przykład 4: Cofanie wszystkich uprawnień do danej bazy

REVOKE ALL PRIVILEGES ON sklep.* FROM 'sprzedawca'@'localhost';

Teraz użytkownik sprzedawca nie ma żadnych uprawnień w bazie sklep.

Przykład 5: Cofanie konkretnych uprawnień do kolumny

Jeżeli użytkownik miał uprawnienia tylko do niektórych kolumn, możemy je cofnąć:

REVOKE SELECT (imie, nazwisko) ON sklep.klienci FROM 'sprzedawca'@'localhost';

Teraz sprzedawca nie może już przeglądać imion i nazwisk klientów.


4. Sprawdzanie uprawnień użytkownika

Aby sprawdzić, jakie uprawnienia ma dany użytkownik, używamy:

SHOW GRANTS FOR 'sprzedawca'@'localhost';

To pomoże zweryfikować, czy zmiany zostały poprawnie zastosowane.


5. Przyznawanie uprawnień z opcją GRANT OPTION

Jeśli chcemy, aby dany użytkownik mógł nadawać innym użytkownikom uprawnienia, dodajemy GRANT OPTION:

GRANT SELECT, INSERT ON sklep.* TO 'manager'@'localhost' WITH GRANT OPTION;

Teraz manager może przekazywać swoje uprawnienia innym użytkownikom.


6. Ćwiczenia

Ćwiczenie 1: Nadawanie uprawnień do tabeli

Nadaj użytkownikowi kasjer dostęp do SELECT i INSERT tylko w tabeli transakcje.


Ćwiczenie 2: Nadawanie uprawnień do kolumn

Nadaj użytkownikowi asystent dostęp do kolumn produkt, cena w tabeli magazyn.


Ćwiczenie 3: Sprawdzanie uprawnień

Sprawdź, jakie uprawnienia ma użytkownik manager.


Ćwiczenie 4: Cofanie uprawnień do tabeli

Cofnij użytkownikowi sprzedawca uprawnienia do INSERT w tabeli zamowienia.


Ćwiczenie 5: Cofanie uprawnień do kolumny

Cofnij użytkownikowi asystent dostęp do kolumn cena w tabeli magazyn.


Ćwiczenie 6: Cofanie wszystkich uprawnień

Usuń wszystkie uprawnienia użytkownikowi kasjer w bazie sklep.