1 / 18

Bezpieczeństwo danych

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

Download Presentation

Bezpieczeństwo danych

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bezpieczeństwo danych Wprowadzenie do systemów baz danych

  2. 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.

  3. 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

  4. Uwierzytelnianie i autoryzacja • Uwierzytelnianie to proces weryfikacji tożsamości użytkownika • Autoryzacja to weryfikacja uprawnień uwierzytelnionego użytkownika

  5. 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

  6. 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

  7. 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’]

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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’

  18. 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

More Related