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
.