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.