BEZPIECZEŃSTWO DOSTĘPU DO DANYCH.
Użytkownik w SZBD to nazwa konta uprawniająca do łączenia się z serwerem baz danych. W SZDB definiowanie użytkowników dokonuje się na ogół z poziomu odpowiedniej aplikacji za pomocą odpowiedniego okna dialogowego. Za pomocą tego okna można usuwać i modyfikować użytkowników baz danych. ( czasami użytkowników tworzymy poleceniem CREATE USER). Nowo utworzony użytkownik nie posiada żadnych praw do baz danych obsługiwanych przez ten SZBD. W momencie utworzenia nowego elementu bazy danych (o ile takie prawo posiada) staje się jego właścicielem. Właściciel posiada wszystkie prawa dostępu do utworzonego przez siebie elementu, podczas gdy pozostali użytkownicy nie mają żadnych. Jeżeli chcemy, aby dany element stał się dostępny dla innych użytkowników, musimy im te prawa przyznać. Prawa dostępu mogą być przypisywane bezpośrednio do użytkownika lub do roli (ROLE) a następnie użytkowników przypisujemy do stworzonej roli. Wówczas wszystkie prawa przypisane do roli są automatycznie dostępne dla tych użytkowników. Uprawnienia do poszczególnych tabel i widoków przypisuje się zazwyczaj do ról, a nie bezpośrednio do użytkownika.
W PstgreSQL Role tworzone są poleceniem CREATE ROLE.
Przykładowa składnia :
CREATE ROLE nazwa_roli
Np.
CREATE ROLE kierownik
Przypisanie użytkownikowi roli odbywa się poprzez polecenie GRANT. Składnia tego polecenia w tym przypadku ma następującą postać :
GRANT nazwa_roli TO nazwa_użytkownika
W MS SQL Server Role (podobnie jak użytkownicy) baz danych tworzone są oraz administrowane za pomocą odpowiedniego okna dialogowego. Podczas tworzenia bazy danych automatycznie tworzonych jest kilka ról bazy danych np. db_owner (z prawami takimi jak właściciel), db_datareader (z prawami do przeglądania danych). Tworzenie ról jak i administrowanie nimi może odbywać się również za pomocą systemowych procedur składowanych np. sp_addrole, sp_droprole, sp_addrolememeber.
Zachowanie bezpieczeństwa dostępu do danych wymaga staranności w opracowywaniu zasad, reguł i planu przyznawania praw dostępu.
Należy :
Przyznawać użytkownikom uprawnienia tylko takie jakie potrzebują do swojej pracy
Monitorować przyznane uprawnienia
Pełne prawa do bazy powinien mieć jedynie użytkownik będący właścicielem bazy danych
Nie należy:
Przypisywać użytkownikom wszystkich uprawnień, aby rozwiązać pewien problem.
Pozwalać zwykłym użytkownikom na tworzenie baz danych lub obiektów w bazach
Dla każdej tabeli lub widoku (relacji) można określić prawa dostępu do danych. Poniżej znajduje się zestawienie wszystkich praw dostępu, jakie można zastosować dla tabel i widoków:
ALL -pozwala na wszystkie operacje na danych relacji
SELECT - pozwala użytkownikowi na odczytywanie danych relacji
DELETE -pozwala na usuwanie rekordów z relacji
INSERT -pozwala na wstawianie nowych rekordów do tabel lub widoków
UPDATE -pozwala na zmianę danych w relacji
EXECUTE -pozwala na wykonywaniu procedur zapamiętanych
Uwaga - w MS SQL Server prawa SELECT i UPDATE mogą być przyznawane do wybranych kolumn.
Domyślnie, nadanie użytkownikowi praw dostępu nie umożliwia mu przekazywanie tych praw innym użytkownikom. Dopiero dołączenie opcji WITH GRANT OPTION pozwoli mu na dalsze przekazywanie posiadanych praw.
Prawa dostępu przechowywane są w jednej z tabel systemowych.
Do przyznawania praw dostępu utworzonym wcześniej rolom bądź użytkownikom służy polecenie GRANT.
Przykładowa składnia:
GRANT nazwy_praw_dostępu
ON nazwa_tabeli_lub_widoku TO nazwa_roli_lub_uzytkownika
GRANT ALL
ON klienci TO kierownik
WITH GRANT OPTION
Jeżeli chcemy zawęzić prawa SELECT, UPDATE do kilku pól to po nazwie prawa dostępu wymieniamy nazwy tych pól. Prawa dostępu przyznawane są tylko pojedynczej tabeli (widokowi). Wszystkie prawa przyznawać mogą : właściciel tabeli (widoku), administrator. Wybrane prawa nadawane mogą być przez tych użytkowników którzy je wcześniej otrzymali z opcją WITH GRANT OPTION.
Do odbierania wcześniej przyznanych praw dostępu służy polecenie REVOKE.
Przykładowa składnia:
REVOKE prawa_dostepu
ON nazwa_tabeli FROM nazwy_użytkowników
Jeżeli użytkownik któremu prawa odbieramy, mógł te prawa przekazywać innym, powinniśmy zdecydować co z przekazanymi prawami zrobić. Użycie opcji CASCADE (MS SQL Server) spowoduje usunięcie przekazanych praw.
Przykładowo:
REVOKE GRANT OPTION FOR SELECT
ON klienci FROM tadek
(CASCADE) dla MS SQL Server
Bezpieczeństwo danych o strony sprzętu i oprogramowania.
Rodzaje awarii
Niegroźne
awaria zasilania
awaria oprogramowania
Poważne
uszkodzenie nośnika
zniszczenie serwera
Zapobieganie utracie danych po awarii
Kopie rezerwowe
Zakres: pełny lub przyrostowy
Okoliczności wykonania: off-line / on-line
Odpowiedzialność: regularne wykonywanie i zabezpieczenie kopii rezerwowych jest podstawowym obowiązkiem administratora
Odtwarzanie
Automatyczne odtwarzanie po awarii
użycie dzienników transakcji
doprowadzenie transakcji do stanu spójnego
Odtwarzanie z kopii zapasowych
odtworzenie danych
wykorzystanie dzienników transakcji
Rozwiązania sprzętowe:
Tworzenie lustrzanego odbicia dysku - dwa dyski na tym samym kontrolerze dysku, zapisywanie zmian jednocześnie na obydwu dyskach (odpowiednie oprogramowanie lub odpowiednie rozwiązania sprzętowe)
Dupleksowanie dysku - dwa dyski tworzące lustrzane odbicie ale kontrolowane przez oddzielne kontrolery (karty SCSI)
Inne, bardziej złożone rozwiązania sprzętowe - paskowanie dysku