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.