Bezpieczeństwo baz danych Wykład S. Kozielski Bezpieczeństwo baz danych Ogólna struktura zabezpieczeń systemów informatycznych: - fizyczne zabezpieczenie dostępu do systemu, - personalna odpowiedzialność za dostęp do systemu, - mechanizmy zabezpieczeń systemu operacyjnego i sieci komputerowej, - mechanizmy zabezpieczeń baz danych Zagrożenia dla baz danych 1) Zagrożenia wynikające z umyślnego działania nieuprawnionych użytkowników. a) nieuprawniony odczyt, b) nieuprawniony i niepoprawny zapis / modyfikacja, 2) Zagrożenia wynikające z błędów (użytkowników, oprogramowania i sprzętu) i zdarzeń losowych: a) pomyłki użytkowników przy wprowadzaniu i aktualizacji danych, b) niepoprawna modyfikacja wynikająca z niekontrolowanego współbieżnego dostępu do danych, c) niepoprawna modyfikacja wynikająca z błędów programów i awarii systemu, d) zniszczenie danych przy poważnych awariach sprzętu, Kierunki przeciwdziałania zagrożeniom 1) Polityka bezpieczeństwa w systemach baz danych: a) kontrola dostępu, b) monitorowanie b.d., c) szyfrowanie w b.d., 2) Ochrona integralności baz danych: a) Integralność semantyczna: - ograniczenia dziedzin atrybutów, - więzy referencyjne, b) Integralność transakcyjna: - mechanizmy blokad, - prowadzenie dziennika transakcji. Polityka bezpieczeństwa w systemach baz danych Kontrola dostępu do baz danych: - identyfikacja użytkowników, - autentyfikacja (uwierzytelnianie) użytkowników, - autoryzacja użytkowników – przydzielanie uprawnień użytkownikom, a następnie egzekwowanie ograniczeń, które z wynikają z tych uprawnień Kontrola dostępu w języku SQL (DCL - Data Control Language) 1. Tworzenie użytkowników, 2. Nadawanie uprawnień ogólnych (systemowych), 3. Nadawanie uprawnień szczegółowych (obiektowych). Oracle, MS SQL Server Tworzenie użytkowników: CREATE USER <użytkownik> IDENTIFIED BY <hasło> Nadawanie uprawnień ogólnych (systemowych) GRANT <uprawnienie systemowe> TO <użytkownik> [WITH ADMIN OPTION] uprawnienia systemowe (przykłady): CREATE TABLE SELECT ANY TABLE UPDATE ANY TABLE . . . Odbieranie uprawnień ogólnych (systemowych): REVOKE <uprawnienie systemowe> FROM <użytkownik> Nadawanie uprawnień szczegółowych (obiektowych) GRANT <uprawnienie obiektowe> ON <obiekt> TO <użytkownik> [WITH GRANT OPTION] uprawnienia obiektowe: select [(<lista kolumn>)] insert delete alter index update [(<lista kolumn>)] Nadawanie uprawnień szczegółowych (obiektowych) – c. d. GRANT <uprawnienie obiektowe> ON <obiekt> TO <użytkownik> [WITH GRANT OPTION] obiekt: tablica perspektywa Odbieranie uprawnień szczegółowych (obiektowych) REVOKE <uprawnienie obiektowe> ON <obiekt> FROM <użytkownik> Role Rola jest nazwanym zbiorem uprawnień CREATE ROLE <rola> GRANT GRANT GRANT GRANT <uprawnienie systemowe> TO <rola> <uprawnienie obiektowe> ON <obiekt> TO <rola> <rola> TO <użytkownik> <rola1> TO <rola2> REVOKE <uprawnienie> FROM <rola> DROP ROLE <rola> Monitorowanie baz danych – instrukcja AUDIT - monitorowanie operacji (poleceń), - monitorowanie obiektów, - monitorowanie uprawnień Szyfrowanie w bazach danych - szyfrowanie haseł, - szyfrowanie procedur, - szyfrowanie danych.