Dbanie o bezpieczeństwo bazy danych jest kluczowe w zarządzaniu danymi. Administracja bazą danych powinna obejmować kontrolę dostępu oraz tworzenie ról ułatwiających zarządzanie użytkownikami.
Kontrola dostępu do danych
SQL pozwala ograniczyć dostęp użytkowników do niektórych danych lub operacji. To podejście oparte na zasadzie najmniejszych uprawnień (ang. Principle of Least Privilege) zwiększa bezpieczeństwo, dając użytkownikom dostęp tylko do tych zasobów, które są im niezbędne.
-
Precyzyjna kontrola na poziomie tabeli i kolumn: Uprawnienia można ograniczyć do konkretnej tabeli lub nawet kolumny.
- Przykład: Użytkownik
anna
może tylko odczytywać kolumnęImię
z tabeliKlienci
:GRANT SELECT (Imię) ON Sklep.Klienci TO 'anna'@'%';
- Przykład: Użytkownik
-
Ograniczenie możliwości modyfikowania danych: Możesz ograniczyć użytkowników tylko do operacji takich jak odczyt (
SELECT
) bez możliwości ich modyfikowania. -
Oblokowanie użytkownika: W przypadku podejrzenia nieautoryzowanego dostępu można zablokować użytkownika:
ALTER USER 'jan'@'localhost' ACCOUNT LOCK;
-
Cofnięcie dostępu: Jeśli użytkownik nie powinien mieć dalej dostępu, można usunąć jego konto:
DROP USER 'jan'@'localhost';
Tworzenie ról i zarządzanie nimi
W systemach bazodanowych z dużą liczbą użytkowników nadawanie uprawnień wszystkim użytkownikom indywidualnie może być uciążliwe i podatne na błędy. W takich sytuacjach używa się ról.
-
Tworzenie ról: Role służą jako zestaw predefiniowanych uprawnień, które można przypisać użytkownikom.
CREATE ROLE DaneOdczyt;
-
Przypisywanie uprawnień do roli: Role mogą otrzymywać uprawnienia tak jak użytkownicy.
- Przykład: Przypisz uprawnienia do odczytu danych w tabeli
Klienci
do roliDaneOdczyt
:GRANT SELECT ON Sklep.Klienci TO DaneOdczyt;
- Przykład: Przypisz uprawnienia do odczytu danych w tabeli
-
Przypisywanie ról użytkownikom: Po utworzeniu roli wystarczy przypisać ją do użytkowników.
- Przykład: Nadaj użytkownikowi
anna
uprawnienia przypisane do roliDaneOdczyt
:GRANT DaneOdczyt TO 'anna'@'%'
- Przykład: Nadaj użytkownikowi
-
Zarządzanie rolami: Możesz cofnąć przypisanie roli lub zmienić uprawnienia przypisane do roli.
- Przykład: Cofnij rolę
DaneOdczyt
użytkownikowianna
:REVOKE DaneOdczyt FROM 'anna'@'%';
- Przykład: Cofnij rolę