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
.