180 likes | 398 Views
Bezpieczeństwo danych. Wprowadzenie do systemów baz danych. Wymagania bezpieczeństwa danych. Zachowanie tajemnicy służbowej, handlowej, bankowej, wojskowej, państwowej Zabezpieczenie danych przed nieuprawnionymi zmianami – fałszowanie danych
E N D
Bezpieczeństwo danych Wprowadzenie do systemów baz danych
Wymagania bezpieczeństwa danych • Zachowanie tajemnicy służbowej, handlowej, bankowej, wojskowej, państwowej • Zabezpieczenie danych przed nieuprawnionymi zmianami – fałszowanie danych • Ochrona danych osobowych – ustawa o ochronie danych osobowych z dnia 29 sierpnia 1997;Dziennik ustaw z dnia 29 października 1997 • Ochrona, przed utratą, danych, wymaganych przez Urząd skarbowy, ZUS itp.
Zagrożenia • Nieuprawnione odczytanie (skopiowanie) danych • Nieuprawniona ingerencja w treść danych • Nieuprawnione uzyskanie dostępu do funkcji administratora • Utrata danych w wyniku celowej wrogiej działalności lub awarii sprzętu
Uwierzytelnianie i autoryzacja • Uwierzytelnianie to proces weryfikacji tożsamości użytkownika • Autoryzacja to weryfikacja uprawnień uwierzytelnionego użytkownika
Administrator bazy danych • Po zainstalowaniu bazy danych tworzone jest konto administratora bazy danych • MS SQLServer – sa (ang. system administrator) • ORACLE – SYS, SYSTEM • PostgreSQL – postgres • MySQL - root • Administrator bazy danych ma wszystkie uprawnienia i może • Tworzyć konta użytkowników i grup • Nadawać uprawnienia użytkownikom i grupom użytkowników • Nadawać i odbierać komputerom prawo do połączenia z bazą danych • Konto administratora jest zabezpieczone nazwą i hasłem
Tworzenie kont użytkowników i grup (ról) • W języku SQL92 nie ma poleceń tworzenia i usuwania kont • Konta użytkowników i grup są tworzone przez odpowiednie programy narzędziowe • W MS SQL Server do tworzenia kont użytkowników służy funkcja systemowa sp_addlogin • W MS SQL Server użytkownicy systemu operacyjnego Windows stają się użytkownikami serwera SQL • Niektóre SZBD udostępniają rozszerzenia języka SQL umożliwiające tworzenie kont użytkowników i grup – między innymi PostgreSQL i ORACLE
Tworzenie konta użytkownika • W PostgreSQL istnieje instrukcja (rozszerzająca język SQL) umożliwiająca tworzenie kont użytkowników • CREATE USER nazwa_użytkownika[WITH PASSWORD hasło][CREATEDB | NOCREATEDB][CREATEUSER | NOCREATEUSER][IN GROUP nazwa_grupy [,...]][VALID UNTIL ’abstime’]
Zasady nadawania uprawnień • Użytkownik może nadać innemu użytkownikowi tylko takie uprawnienia jakie sam posiada (nigdy nie większe) – tak jak w prawie rzymskim • Właścicielem obiektu jest użytkownik, który go stworzył i ma do niego wszystkie uprawnienia • Użytkownik, który utworzył nową bazę danych staje się jej administratorem
Nadawanie uprawnień • GRANT uprawnienie [,...] ON nazwa_obiektuTO {PUBLIC | GROUP nazwa_grupy | nazwa użytkownika}[WITH GRANT OPTION] • Uprawnienia: SELECT, INSERT, UPDATE, DELETE • ALL PRIVILLIGES (SQL92), ALL (PostgreSQL) • REFERENCES (SQL92)* • Przykład • GRANT SELECT ON studenci TO student • W SQL92 można nadawać uprawnienia na poziomie kolumn • W PostgreSQL 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ń • REVOKE uprawnienie [,...] ON nazwa_obiektuFROM {PUBLIC | GROUP nazwa_grupy | nazwa_użytkownika} • Przykład • REVOKE ALL FROM pracownik • REVOKE SELECT ON studenci TO student
Konfiguracja połączeń z serwerem • Administrator może skonfigurować połączenie każdego komputera z serwerem podając • 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 • Metody uwierzytelniania (PostgreSQL) • Tylko nazwa użytkownika (trust) • Nazwa użytkownika plus niezaszyfrowane hasło (password) • Szyfrowanie hasła metodą MD5 • Uwierzytelnianie zgodne z algorytmem Kerberos (4 lub 5) • Metody szyfrowania łączności • SSL – Secure Socket Layer • SSH – Secure Shell – wymaga uwierzytelnienia w systemie operacyjnym serwera
Zabezpieczenia przed utratą danych • 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 • Archiwizacja • Tworzenie kopii zapasowych bazy danych
Data Transformation Services • Data Transformation Services (DTS) jest częścią MS SQL Server i MSDE • W wersji MS SQL Server 2005 DTS zostało zastąpione przez Integration Services • DTS umożliwia • Przesłanie danych z jednej bazy danych do innej (wykonanie repliki wszystkich lub wybranych tabel) • Zaplanowanie harmonogramu synchronizacji danych w wybranych bazach danych • DTS obsługuje większość baz danych
Archiwizacja • W skład SZBD wchodzą zwykle narzędzia do archiwizacji i odzyskiwania danych na podstawie kopii zapasowych • Bazę danych archiwizuje się w postaci pliku, na podstawie którego można ją łatwo odtworzyć • W PostgreSQL do archiwizacji służy program pg_dump, a do odtwarzania danych pg_restore • 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) • Kasowane wiersze nie są usuwane z plików zawierających 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 PostgreSQL do defragmentacji bazy danych służy polecenie VACUUM
Ustawienie strony kodowej • Tworząc bazę danych należy określić stronę kodową • Dla Polski • ISO 8859-2 (LATIN2), albo • UNICODE (UTF-8), albo • WIN1250 • PostrgeSQL: Jeśli aplikacja klienta używa innej strony kodowej niż serwer, należy ustawić stronę kodową klienta poleceniem: • SET CLIENT ENCODING TO ’nazwa_strony_kodowej’ • Np.: SET CLIENT ENCODING TO ’WIN1250’
Ustawienie strefy czasowej klienta • SET TIME ZONE [‘strefa_czasowa’|LOCAL|DEFAULT] • Przykłady: • SET TIME ZONE ’UTC’ • SET TIME ZONE ’MET’ – (Middle Europe Time) • SET TIME ZONE ’ +01:00’ • LOCAL, DEFAULT – systemowa strefa czasowa