106 107 Plan prezentacji • • • • Zarządzanie kontami użytkowników i uprawnieniami Schematy a użytkownicy Tworzenie użytkowników, uwierzytelnianie Przywileje systemowe i obiektowe, role Profile – kontrola wykorzystania zasobów systemu – polityka haseł • Obserwacja bazy danych (ang. auditing) 108 Schematy a użytkownicy • Schemat to kolekcja logicznych struktur danych • Właścicielem schematu jest użytkownik – nazwa użytkownika równa nazwie schematu – terminy używane w systemie Oracle zamiennie (w niektórych sytuacjach rozróżnienie jest istotne) • Podstawowe obiekty schematów: – tabele, indeksy – perspektywy, sekwencje, synonimy – procedury, funkcje, pakiety • Nazwa obiektu schematu musi być unikalna w obrębie schematu: – np. HR.EMPLOYEES, HR.DEPARTMENTS, OE.EMPLOYEES • Przykładowe obiekty niezawierające się w schemacie: – role, profile, przestrzenie tabel 109 Administrowanie użytkownikami (EM) 110 111 Predefiniowane konta użytkowników Właściwości użytkownika • Konta administratorskie • • • • • Nazwa Metoda uwierzytelniania Domyślna przestrzeń tabel Tymczasowa przestrzeń tabel Limity miejsca do wykorzystania w poszczególnych przestrzeniach tabel (ang. quotas) • Profil • Status konta (odblokowane, zablokowane) – SYS – administrator b.d., właściciel słownika b.d. (rola DBA, przywilej SYSDBA) – SYSTEM – administrator b.d. bez prawa zatrzymywania i startowania b.d. (rola DBA) – SYSMAN – administrator Oracle Enterprise Manager – DBSNMP – konto dla monitorowania b.d. przez Enterprise Manager • Przykładowe schematy do ćwiczeń – np. HR, OE, SH – wykorzystywane w tutorialach, szkoleniach i przykładach w dokumentacji – po instalacji zablokowane • Konta wewnętrzne – dla różnych funkcji i komponentów serwera (niezbędne, powinny pozostać zablokowane) – np. CTXSYS, ORDSYS, OLAPSYS 112 Tworzenie użytkownika • Server -> Security -> Users -> Create 113 Sposoby uwierzytelniania użytkowników • Password - przez bazę danych (w oparciu o hasło) – od 11g hasła wrażliwe na wielkość liter – rozróżnianie wielkości liter w haśle zależy od wartości parametru inicjalizacyjnego SEC_CASE_SENSITIVE_LOGON (domyślnie TRUE) • External – przez system operacyjny CREATE USER "TOLA" PROFILE "DEFAULT" IDENTIFIED BY "*******" DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK GRANT "CONNECT" TO "TOLA" – nazwa użytkownika w b.d. zbudowana z prefiksu (OS_AUTHENT_PREFIX, domyślnie: OPS$) i nazwy użytkownika w systemie operacyjnym • Global – przez zewnętrzną usługę uwierzytelniania – w ramach Enterprise User Security – np. przez Oracle Internet Directory – z użytkownikiem związana nazwa X.500 Distinguished Name 114 Przywileje systemowe SYSDBA i SYSOPER Przywileje i role • Umożliwiają logowanie się gdy b.d. jest zamknięta • Chęć skorzystania z nich wskazywana przy logowaniu: • Służą do kontroli dostępu użytkowników do danych i możliwości wykonywania poleceń SQL • Przywileje systemowe CONNECT sys AS SYSDBA – dotyczą możliwości wykonywania poszczególnych operacji na bazie danych • Przywileje obiektowe CONNECT / AS SYSDBA CONNECT scott AS SYSDBA • SYSDBA – umożliwia startowanie/zatrzymywanie instancji, tworzenie pliku SPFILE, odtwarzanie, tworzenie i usuwanie b.d. – logowanie AS SYSDBA loguje do schematu SYS – SYS musi logować się jako SYSDBA – możliwość wykonywania konkretnej operacji na konkretnym obiekcie • Role • SYSOPER – nazwane zbiory przywilejów – ułatwiają zarządzanie przywilejami użytkowników – umożliwia startowanie/zatrzymywanie instancji, tworzenie pliku SPFILE, odtwarzanie (tylko kompletne) – logowanie AS SYSOPER loguje do schematu PUBLIC – nie umożliwia dostępu do danych użytkowników 116 Uwierzytelnianie administratorów 117 Nadawanie przywilejów systemowych • Zazwyczaj przez administratorów b.d. • Możliwe uwierzytelnienie przez bazę danych • Dodatkowo konieczny mechanizm uwierzytelniania umożliwiający logowanie się użytkowników z przywilejem SYSDBA/SYSOPER gdy baza danych jest zamknięta/niedostępna – system operacyjny (przynależność do odpowiedniej grupy) – plik haseł UNIX Windows OSDBA dba ORA_DBA OSOPER oper ORA_OPER • tworzony narzędziem orapwd • tworzony automatycznie przy tworzeniu bazy danych kreatorem – sieciowa usługa uwierzytelniania • np. Oracle Internet Directory 115 118 Nadawanie przywilejów obiektowych 119 Tworzenie ról • Właściciel obiektu nadaje i odbiera przywileje poleceniami GRANT i REVOKE • Administrator zarządza przywilejami obiektowymi dzięki przywilejowi systemowemu GRANT ANY OBJECT PRIVILEGE • Server -> Security -> Roles -> Create GRANT SELECT, UPDATE ON scott.dept TO tola Dla zwiększenia bezpieczeństwa rola może wymagać dodatkowego uwierzytelnienia w momencie jej włączenia przez użytkownika (jeśli nie należy do jego ról domyślnych) REVOKE SELECT, UPDATE ON scott.dept FROM tola Rola może obejmować zarówno przywileje systemowe jak i obiektowe, a także inne role 120 Podstawowe predefiniowane role 121 Nadawanie ról użytkownikom • Server -> Security -> Users -> Create/Edit • CONNECT – umożliwia logowanie się do bazy danych – nadawana automatycznie użytkownikom tworzonym w Enterprise Manager • RESOURCE – umożliwia tworzenie, modyfikację i usuwanie podstawowych typów obiektów schematu (nie zawiera CREATE VIEW) – nadaje przywilej UNLIMITED TABLESPACE • DBA – zawiera wszystkie przywileje systemowe poza specjalnymi SYSDBA i SYSOPER 122 Profile Tworzenie profilu – ograniczenie wykorzystania zasobów 123 • Server -> Security -> Profiles -> Create/Edit • Profil to nazwany zbiór limitów wykorzystania zasobów bazy danych i instancji • W danej chwili użytkownik ma przypisany dokładnie jeden profil • Profile umożliwiają: – ograniczenie wykorzystania zasobów przez użytkowników – implementację polityki haseł • Można modyfikować profil DEFAULT i tworzyć dodatkowe 124 Tworzenie profilu – polityka haseł 125 Funkcja weryfikująca złożoność hasła • Server -> Security -> Profiles -> Create/Edit • Musi znajdować się w schemacie SYS • Musi mieć odpowiednie parametry i typ zwrotny • Przykładową funkcję można utworzyć skryptem ORACLE_HOME/RDBMS/ADMIN/utlpwdmg.sql (skrypt również modyfikuje profil DEFAULT) CREATE OR REPLACE FUNCTION verify_function_11G (username varchar2, password varchar2, old_password varchar2) RETURN boolean IS ... BEGIN ... RETURN TRUE; END; 126 Uwagi o kontroli zużycia zasobów • Aby limity zużycia zasobów były egzekwowane należy włączyć ograniczanie zużycia zasobów parametrem RESOURCE_LIMIT Limity wykorzystania przestrzeni dyskowej 127 • Realizowane poprzez limity dla przestrzeni tabel – domyślny limit dla przestrzeni tabel to 0 – przed uruchomieniem bazy danych – na otwartej bazie danych poleceniem ALTER SYSTEM • Ustawienia profilu dotyczące haseł obowiązują niezależnie od wartości parametru RESOURCE_LIMIT 128 Obserwacja bazy danych (auditing) • Polega na monitorowaniu i zapisywaniu informacji o wybranych rodzajach aktywności użytkowników w b.d. • Cele stosowania: – – – – – – odpowiedzialność użytkowników za swoje działania zniechęcenie użytkowników do czynienia szkód śledzenie podejrzanych działań użytkowników zbieranie informacji o korzystaniu z systemu weryfikacja poprawności polityki bezpieczeństwa dostosowanie systemu do obowiązujących przepisów 129 Ogólne rodzaje obserwacji • Standardowa – obserwacja poleceń SQL, przywilejów, schematów, obiektów i aktywności sieciowej – zapis do tabeli SYS.AUD$ lub pliku systemu operacyjnego • Fine-grained – umożliwia precyzyjną konfigurację obserwacji z uwzględnieniem czasu wykonania operacji i konkretnych wartości – konfiguracja za pomocą pakietu DBMS_FGA – zapis do tabeli SYS.FGA_LOG$ • Obserwacja administratorów – zapis do do dziennika systemu operacyjnego (syslog, EventLog) • Obserwacja obowiązkowa (zawsze realizowana) – startup, shutdown, połączenia jako SYSDBA i SYSOPER – zapis do dziennika systemu operacyjnego 130 Konfiguracja standardowej obserwacji 131 Ustawienia obserwacji (EM) • Server -> Security -> Audit Settings • Parametr inicjalizacyjny AUDIT_TRAIL – DB – zapis do tabeli SYS.AUD$ – DB, EXTENDED – zapis również treści SQL i zmiennych wiązanych – OS – zapis do pliku systemu operacyjnego do katalogu wskazanego przez AUDIT_FILE_DEST – XML – zapis do pliku systemu operacyjnego w formacie XML – XML, EXTENDED – zapis do pliku XML również treści SQL i zmiennych wiązanych – NONE – obserwacja standardowa wyłączona Specyfikacja celu obserwacji standardowej – przywileje 132 Specyfikacja celu obserwacji standardowej – obiekty 133 Specyfikacja celu obserwacji standardowej – polecenia 134 135 Podgląd dziennika obserwacji • Wg przywilejów • Wg obiektów 136 Kontrola rozmiaru dziennika obserwacji • Włączać obserwację gdy zachodzi taka potrzeba • Precyzyjnie ustawiać cele obserwacji • Okresowo usuwać wiersze z dziennika obserwacji – ewentualnie wcześniej je archiwizując (np. przez przeniesienie informacji do innej tabeli) DELETE FROM sys.aud$