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 <uprawnienie systemowe> TO <rola> GRANT <uprawnienie obiektowe> ON <obiekt> TO <rola> GRANT <rola> TO <użytkownik> GRANT <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.