🥔 Ziemniak w Dresie

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;