Bazy w dresie #2.12 | Mechanizmy bezpieczeństwa w serwerach bazy danych
📂 MySQL
Bazy danych są kluczowym elementem systemów informatycznych. Przechowywane w nich dane mogą być narażone na różne zagrożenia.
Główne zagrożenia
- Odczyt danych przez osoby nieuprawnione.
- Niepoprawne modyfikacje danych (umyślne lub przypadkowe).
- Brak kontroli przy współbieżnym dostępie wielu użytkowników.
- Błędy oprogramowania i awarie sprzętu.
- Utrata lub zniszczenie danych w wyniku awarii.
Obszary ochrony danych
- Autentyfikacja i autoryzacja (kontrola dostępu) - Każdy użytkownik ma konto i hasło (lub inny sposób potwierdzenia tożsamości). Uprawnienia dzielą się na:
- Systemowe – dotyczą całej bazy danych.
- Obiektowe – dotyczą konkretnych tabel lub widoków (np. SELECT, INSERT, UPDATE).
- Ochrona integralności danych
- Integralność semantyczna – zapobiega błędnym lub nieautoryzowanym zmianom.
- Integralność transakcyjna – zapewnia spójność danych przy pracy wielu użytkowników i w razie awarii.
- Monitorowanie operacji - Wszystkie działania użytkowników są rejestrowane i analizowane w celu oceny bezpieczeństwa.
- Szyfrowanie danych - Dane mogą być szyfrowane, aby chronić ich treść przed nieautoryzowanym dostępem.
Modele bezpieczeństwa
- Model uznaniowy (Discretionary Access Control – DAC)
- Każdy użytkownik ma określone uprawnienia i może przekazywać je innym (np. z opcją WITH GRANT OPTION).
- Najczęściej stosowany w systemach komercyjnych (np. Oracle, SQL Server).
- Model obowiązkowy (Mandatory Access Control – MAC)
- Dostęp do danych zależy od poziomu tajności i uprawnień użytkownika.
- Rzadziej stosowany w systemach komercyjnych.
Przykłady nadawania uprawnień
- Systemy z rolami (np. Oracle, SQL Server) - Uprawnienia grupowane w role, np. DBA, RESOURCE, CONNECT.
- Systemy z klasami użytkowników (np. Informix, Centura) - Klasy użytkowników mają różne poziomy uprawnień.
- Polecenie SQL: GRANT SELECT, INSERT ON tabela TO użytkownik;