Kursy i Poradniki IT - Adrian Kowalski
Kurs SQL dla Początkujących
O lekcji

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.

  1. 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 tabeli Klienci:
      GRANT SELECT (Imię) ON Sklep.Klienci TO 'anna'@'%';
      
  2. 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.

  3. Oblokowanie użytkownika: W przypadku podejrzenia nieautoryzowanego dostępu można zablokować użytkownika:

    ALTER USER 'jan'@'localhost' ACCOUNT LOCK;
    
  4. 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.

  1. Tworzenie ról: Role służą jako zestaw predefiniowanych uprawnień, które można przypisać użytkownikom.

    CREATE ROLE DaneOdczyt;
    
  2. Przypisywanie uprawnień do roli: Role mogą otrzymywać uprawnienia tak jak użytkownicy.

    • Przykład: Przypisz uprawnienia do odczytu danych w tabeli Klienci do roli DaneOdczyt:
      GRANT SELECT ON Sklep.Klienci TO DaneOdczyt;
      
  3. Przypisywanie ról użytkownikom: Po utworzeniu roli wystarczy przypisać ją do użytkowników.

    • Przykład: Nadaj użytkownikowi anna uprawnienia przypisane do roli DaneOdczyt:
      GRANT DaneOdczyt TO 'anna'@'%'
      
  4. Zarządzanie rolami: Możesz cofnąć przypisanie roli lub zmienić uprawnienia przypisane do roli.

    • Przykład: Cofnij rolę DaneOdczyt użytkownikowi anna:
      REVOKE DaneOdczyt FROM 'anna'@'%';