Bezpieczestwo danych Wprowadzenie do systemw baz danych Wymagania
Bezpieczeństwo danych Wprowadzenie do systemów baz danych
Wymagania bezpieczeństwa danych n Zachowanie tajemnicy służbowej, handlowej, bankowej, wojskowej, państwowej n Zabezpieczenie danych przed nieuprawnionymi zmianami – fałszowanie danych n Ochrona danych osobowych – ustawa o ochronie danych osobowych z dnia 29 sierpnia 1997; Dziennik ustaw z dnia 29 października 1997 n Ochrona, przed utratą, danych, wymaganych przez Urząd skarbowy, ZUS itp.
Zagrożenia n Nieuprawnione odczytanie (skopiowanie) danych n Nieuprawniona ingerencja w treść danych n Nieuprawnione uzyskanie dostępu do funkcji administratora n Utrata danych w wyniku celowej wrogiej działalności lub awarii sprzętu
Uwierzytelnianie i autoryzacja n Uwierzytelnianie to proces weryfikacji tożsamości użytkownika n Autoryzacja to weryfikacja uprawnień uwierzytelnionego użytkownika
Administrator bazy danych n Po zainstalowaniu bazy danych tworzone jest konto administratora bazy danych n MS SQLServer – sa (ang. system administrator) n ORACLE – SYS, SYSTEM n Postgre. SQL – postgres n My. SQL - root n Administrator bazy danych ma wszystkie uprawnienia i może n Tworzyć konta użytkowników i grup n Nadawać uprawnienia użytkownikom i grupom użytkowników n Nadawać i odbierać komputerom prawo do połączenia z bazą danych n Konto administratora jest zabezpieczone nazwą i hasłem
Tworzenie kont użytkowników i grup (ról) n W języku SQL 92 nie ma poleceń tworzenia i usuwania kont n Konta użytkowników i grup są tworzone przez odpowiednie programy narzędziowe n W MS SQL Server do tworzenia kont użytkowników służy funkcja systemowa sp_addlogin n W MS SQL Server użytkownicy systemu operacyjnego Windows stają się użytkownikami serwera SQL n Niektóre SZBD udostępniają rozszerzenia języka SQL umożliwiające tworzenie kont użytkowników i grup – między innymi Postgre. SQL i ORACLE
Tworzenie konta użytkownika n W Postgre. SQL istnieje instrukcja (rozszerzająca język SQL) umożliwiająca tworzenie kont użytkowników n CREATE USER nazwa_użytkownika [WITH PASSWORD hasło] [CREATEDB | NOCREATEDB] [CREATEUSER | NOCREATEUSER] [IN GROUP nazwa_grupy [, . . . ]] [VALID UNTIL ’abstime’]
Zasady nadawania uprawnień n Użytkownik może nadać innemu użytkownikowi tylko takie uprawnienia jakie sam posiada (nigdy nie większe) – tak jak w prawie rzymskim n Właścicielem obiektu jest użytkownik, który go stworzył i ma do niego wszystkie uprawnienia n Użytkownik, który utworzył nową bazę danych staje się jej administratorem
Nadawanie uprawnień n GRANT uprawnienie [, . . . ] ON nazwa_obiektu n n TO {PUBLIC | GROUP nazwa_grupy | nazwa użytkownika} [WITH GRANT OPTION] Uprawnienia: SELECT, INSERT, UPDATE, DELETE n ALL PRIVILLIGES (SQL 92), ALL (Postgre. SQL) n REFERENCES (SQL 92)* Przykład n GRANT SELECT ON studenci TO student W SQL 92 można nadawać uprawnienia na poziomie kolumn W Postgre. SQL nie można nadawać uprawnień na poziomie kolumn * Dostęp do referencji pozwala na zdobycie informacji o wartościach w tabeli nadrzędnej
Odbieranie uprawnień n REVOKE uprawnienie [, . . . ] ON nazwa_obiektu FROM {PUBLIC | GROUP nazwa_grupy | nazwa_użytkownika} n Przykład n REVOKE ALL FROM pracownik n REVOKE SELECT ON studenci TO student
Konfiguracja połączeń z serwerem n Administrator może skonfigurować połączenie każdego komputera z serwerem podając n n n Użytkowników, którzy mogą łączyć się z danego komputera Sposób uwierzytelniania Bazy danych dostępne dla każdego z użytkowników Rodzaj łączności jawna czy szyfrowana Algorytm szyfrowania dla łączności szyfrowanej
Bezpieczeństwo połączenia n Metody uwierzytelniania (Postgre. SQL) Tylko nazwa użytkownika (trust) n Nazwa użytkownika plus niezaszyfrowane hasło (password) n Szyfrowanie hasła metodą MD 5 n Uwierzytelnianie zgodne z algorytmem Kerberos (4 lub 5) n Metody szyfrowania łączności n SSL – Secure Socket Layer n SSH – Secure Shell – wymaga uwierzytelnienia w systemie operacyjnym serwera n
Zabezpieczenia przed utratą danych n Replikacja Replika danych stanowi kopię całości lub jakiejś części danych przechowywanych w innej części bazy danych, zwykle na innym serwerze rozproszonej bazy danych n Archiwizacja n Tworzenie kopii zapasowych bazy danych n
Data Transformation Services n Data Transformation Services (DTS) jest częścią MS SQL Server i MSDE n W wersji MS SQL Server 2005 DTS zostało zastąpione przez Integration Services n DTS umożliwia n Przesłanie danych z jednej bazy danych do innej (wykonanie repliki wszystkich lub wybranych tabel) n Zaplanowanie harmonogramu synchronizacji danych w wybranych bazach danych n DTS obsługuje większość baz danych
Archiwizacja n W skład SZBD wchodzą zwykle narzędzia do archiwizacji i odzyskiwania danych na podstawie kopii zapasowych n Bazę danych archiwizuje się w postaci pliku, na podstawie którego można ją łatwo odtworzyć n W Postgre. SQL do archiwizacji służy program pg_dump, a do odtwarzania danych pg_restore n Możliwe jest także archiwizowanie danych jako pliku bazy danych np. MS Access – plik taki jest łatwy do odczytania zanim baza danych zostanie odtworzona
Defragmentacja (kompaktowanie) n Kasowane wiersze nie są usuwane z plików zawierających n n dane, ale są oznaczane jako skasowane Z czasem w bazie danych gromadzą się zdezaktualizowane wiersze, które zajmują miejsce, ale nie można z nich korzystać Zdezaktualizowane wiersze spowalniają pracę bazy danych Defragmentacja służy do odzyskanie miejsca zajmowanego przez zdezaktualizowane dane i przyspieszenia pracy bazy danych W Postgre. SQL do defragmentacji bazy danych służy polecenie VACUUM
Ustawienie strony kodowej n Tworząc bazę danych należy określić stronę kodową n Dla Polski ISO 8859 -2 (LATIN 2), albo n UNICODE (UTF-8), albo n WIN 1250 n Postrge. SQL: Jeśli aplikacja klienta używa innej strony kodowej niż serwer, należy ustawić stronę kodową klienta poleceniem: n SET CLIENT ENCODING TO ’nazwa_strony_kodowej’ n Np. : SET CLIENT ENCODING TO ’WIN 1250’ n
Ustawienie strefy czasowej klienta n SET TIME ZONE [‘strefa_czasowa’|LOCAL|DEFAULT] n Przykłady: SET TIME ZONE ’UTC’ n SET TIME ZONE ’MET’ – (Middle Europe Time) n SET TIME ZONE ’ +01: 00’ n LOCAL, DEFAULT – systemowa strefa czasowa n
- Slides: 18