Bezpieczeństwo

advertisement
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_obiektu




TO {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_obiektu
FROM {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

Download