Zaawansowane zarządzanie uprawnieniami w MySQL – GRANT i REVOKE

Zaawansowane zarządzanie uprawnieniami w MySQL – GRANT i REVOKE (lekcja utrwalająca)

1. Wstęp

W poprzednich lekcjach nauczyliśmy się nadawać i cofać uprawnienia użytkownikom MySQL za pomocą GRANT i REVOKE. Teraz powtórzymy temat, prezentując nowe przykłady oraz dodatkowe ćwiczenia praktyczne.


2. Nadawanie uprawnień – GRANT

MySQL pozwala na szczegółowe przyznawanie uprawnień użytkownikom. Możemy nadawać dostęp do całych baz danych, pojedynczych tabel, a nawet do wybranych kolumn i operacji.

Przykład 1: Nadawanie pełnych uprawnień do jednej bazy danych

GRANT ALL PRIVILEGES ON sklep.* TO 'kierownik'@'localhost';

Użytkownik kierownik uzyskuje pełny dostęp do bazy sklep.

Przykład 2: Nadawanie uprawnień tylko do jednej tabeli

GRANT SELECT, UPDATE ON sklep.produkty TO 'pracownik'@'localhost';

Teraz pracownik może przeglądać (SELECT) i aktualizować (UPDATE) dane w tabeli produkty, ale nie może ich usuwać ani dodawać nowych.

Przykład 3: Nadawanie uprawnień do określonych kolumn

GRANT SELECT (nazwa, cena) ON sklep.produkty TO 'sprzedawca'@'localhost';

Użytkownik sprzedawca może przeglądać tylko kolumny nazwa i cena, ale nie ma dostępu do pozostałych danych w tabeli.


3. Cofanie uprawnień – REVOKE

Kiedy użytkownik nie powinien już mieć dostępu do danej operacji, możemy cofnąć jego uprawnienia.

Przykład 4: Cofanie konkretnego uprawnienia do tabeli

REVOKE UPDATE ON sklep.produkty FROM 'pracownik'@'localhost';

Teraz pracownik może tylko przeglądać produkty, ale nie może ich edytować.

Przykład 5: Cofanie wszystkich uprawnień użytkownika w danej bazie

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

Użytkownik sprzedawca traci dostęp do bazy sklep.

Przykład 6: Cofanie uprawnień do pojedynczej kolumny

REVOKE SELECT (cena) ON sklep.produkty FROM 'sprzedawca'@'localhost';

Teraz sprzedawca nie może już przeglądać cen produktów.


4. Sprawdzanie uprawnień użytkownika

Jeśli chcemy zweryfikować, jakie uprawnienia posiada dany użytkownik, możemy użyć:

SHOW GRANTS FOR 'kierownik'@'localhost';

Dzięki temu zobaczymy wszystkie uprawnienia przyznane użytkownikowi kierownik.


5. Przykłady bardziej zaawansowane

Przykład 7: Nadawanie uprawnień do tworzenia nowych tabel

GRANT CREATE ON sklep.* TO 'developer'@'localhost';

Teraz developer może tworzyć nowe tabele w bazie sklep.

Przykład 8: Nadawanie uprawnień z możliwością przekazywania dalej

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

Teraz manager może nie tylko wykonywać SELECT i INSERT, ale także nadawać te uprawnienia innym użytkownikom.


6. Ćwiczenia

Ćwiczenie 1: Nadawanie uprawnień do bazy

Nadaj użytkownikowi analityk pełne uprawnienia do bazy raporty.


Ćwiczenie 2: Nadawanie uprawnień do tabeli

Przyznaj użytkownikowi magazynier uprawnienia SELECT i INSERT do tabeli dostawy.


Ćwiczenie 3: Nadawanie uprawnień do kolumn

Nadaj użytkownikowi kasjer dostęp tylko do kolumn produkt, cena w tabeli transakcje.


Ćwiczenie 4: Cofanie uprawnień do tabeli

Cofnij użytkownikowi pracownik możliwość INSERT w tabeli zamowienia.


Ćwiczenie 5: Cofanie uprawnień do kolumny

Cofnij użytkownikowi kasjer dostęp do kolumny cena w tabeli transakcje.


Ćwiczenie 6: Cofanie wszystkich uprawnień do bazy

Usuń wszystkie uprawnienia użytkownika magazynier w bazie sklep.


Ćwiczenie 7: Nadawanie uprawnień do tworzenia tabel

Przyznaj użytkownikowi administrator możliwość tworzenia tabel w bazie system.


Ćwiczenie 8: Nadawanie uprawnień z możliwością przekazywania dalej

Nadaj użytkownikowi koordynator dostęp do SELECT i DELETE w tabeli zamowienia z możliwością przekazywania tych uprawnień innym użytkownikom.


Ćwiczenie 9: Sprawdzanie uprawnień użytkownika

Sprawdź, jakie uprawnienia ma użytkownik menadzer.


Ćwiczenie 10: Cofanie uprawnień do tworzenia tabel

Cofnij użytkownikowi developer możliwość tworzenia nowych tabel w bazie system.