michał szkopiński
DESCRIPTION
Administracja serwerem bazy danych Oracle 11g Zarządzanie użytkownikami i bezpieczeństwem danych Wykład nr 3. Michał Szkopiński. Konta użytkowników. Konto użytkownika bazy danych. Każde konto użytkownika zawiera : Unikalną nazwę Metodę uwierzytelnienia Domyślną przestrzeń tabel - PowerPoint PPT PresentationTRANSCRIPT
<Insert Picture Here>
Administracja serwerem bazy danych Oracle 11gZarządzanie użytkownikami i bezpieczeństwem danych
Wykład nr 3
Michał Szkopiński
Konta użytkowników
Konto użytkownika bazy danych
• Każde konto użytkownika zawiera:• Unikalną nazwę• Metodę uwierzytelnienia• Domyślną przestrzeń tabel• Tymczasową przestrzeń tabel• Profil• Status
Predefiniowane konta SYS i SYSTEM
• Konto SYS:• Posiada rolę DBA• Wszystkie uprawnienia są przydzielone z ADMIN OPTION• Posiada uprawnienie SYSDBA• Z tego konta otwiera i zamyka się bazę danych oraz wykonuje
wszystkie operacje administracyjne• Jest właścicielem schematu ze słownikiem danych
• Konto SYSTEM • Posiada rolę DBA• Ale nie posiada uprawnienia SYSDBA
• Oba konta nie powinny być używane do normalnej pracy na danych
• Tych kont nie da się usunąć
Uwierzytelnienie i autoryzacja
• Uwierzytelnienie• Proces weryfikacji tożsamości użytkownika• Najczęściej bazuje na nazwie i haśle użytkownika• Może korzystać z tożsamości sprawdzonej w systemie
operacyjnym• Zaawansowane metody mogą opierać się o:
• Certyfikaty• Metody biometryczne• Zewnętrzny katalog LDAP
• Autoryzacja• Proces sprawdzania uprawnień• Bazuje na przydzielonych uprawnieniach i rolach
Uwierzytelnianie administratorów
• System operacyjny:• Administratorzy bazy muszą posiadać uprawnienia do tworzenia
i usuwania plików w systemie operacyjnym• Zwykły użytkownik nie powinien mieć uprawnien do operowania
na plikach bazy w systemie operacyjnym
• Baza danych• W połączeniach typu SYSDBA:
• Używany jest plik haseł• Uwierzytelnienie przez system operacyjny
Tworzenie użytkowników
• SQLPLUS
• CREATE USER TOMEK IDENTIFIED BY HASLO;
• DEFAULT TABLESPACE USERS
• TEMPORARY TABLESPACE TEMP
• ACCOUNT LOCK;
• ALTER USER TOMEK ACCOUNT UNLOCK;
• ALTER USER TOMEK PASSWORD EXPIRE;
• Za pomoca Enterprise Manager
Uprawnienia
Uprawnienia
• W bazie Oracle istnieją dwa rodzaje uprawnień• Systemowe:
• Pozwalające wykonać określone czynności na bazie danych
• Obiektowe: • Pozwalające wykonać określone
czynności na danych w obiektach bazy danych (SELECT, UPDATE itp.)
Systemowe:
CREATE SESSION
Obiekytowe
UPDATE TABLE
Przydzielanie uprawnień
• Przydzielanie uprawnień systemowych• Polecenie GRANT• GRANT CREATE SESSION TO TOMEK• Z wykorzystaniem klauzuli WITH ADMIN OPTION• Pozwala przekazywać to uprawnienie innym• GRANT CREATE SESSION TO TOMEK WITH ADMIN OPTION
• Przydzielanie uprawnień obiektowych• Polecenie GRANT• GRANT SELECT ANY TABLE TO TOMEK;• Z wykorzystaniem klauzuli WITH GRANT OPTION• Pozwala przekazywać uprawnienie innym
GRANT
REVOKE
Odwoływanie uprawnień systemowychz ADMIN OPTION
REVOKE CREATE TABLE FROM jan;
Użytkownik
Uprawnienie
Obiekt
DBA Jan Ewa
Jan EwaDBA
GRANT
REVOKE
Odwoływanie uprawnień obiektowych z GRANT OPTION
DBA Jan Ewa
EwaJanDBAKaskadowe odbieranie uprawnień
Role
• Łatwiejsze zarządzanie uprawnieniami• Dynamiczne przydzielanie i usuwanie uprawnień
wielu użytkownikom• Tymczasowe włączanie ról i ochrona hasłem
Zarządzanie rolami
Użytkownicy
Uprawnienia
Role HR_CLERKHR_MGR
Jan Adam Ewa
Delete
Employees.
Select
Employees.
Update
Employees.
Insert
Employees.
Create
Job.
Predefiniowane role w bazie danych
CREATE ANY JOB, CREATE EXTERNAL JOB, CREATE JOB, EXECUTE ANY CLASS, EXECUTE ANY PROGRAM, MANAGE SCHEDULER
SCHEDULER_ ADMIN
Żadnych ról systemowych; Rola: HS_ADMIN_ROLE i ponad 1,700 uprawnień obiektowych na tabelach słownikowych bazy danych
SELECT_
CATALOG_ROLE
Większość uprawnień administracyjnych, ale bez SYSDBA
DBA
CREATE CLUSTER, CREATE INDEXTYPE, CREATE OPERATOR, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TABLE, CREATE TRIGGER, CREATE TYPE
RESOURCE
CREATE SESSIONCONNECT
Tworzenie ról
• CREATE ROLE KADRY;• GRANT CREATE ANY TABLE TO KADRY;• GRANT SELECT ANY TABLE TO KADRY;• GRANT KADRY TO JAN;
• REVOKE CREATE ANY TABLE FROM KADRY;• Jakie uprawnienia posiada JAN?
Zabezpieczanie ról
• Role mogą być zabepieczane hasłem i włączane przez samych użytkowników
• CREATE ROLE POWER_USER IDENTIFIED BY password
• GRANT CREATE TABLE TO POWER_USER;
• SELECT * FROM SESSION_ROLES
• Użytkownik w swojej sesji włącza rolę
• SET ROLE POWER_USER IDENTIFIED BY password
• Role mogą być również chronione programowo przez uruchomienie procedury PL/SQL
Niskopoziomowe zarządzanie uprawnieniami - VPD
Virtual Private Database (VPD)
• Umożliwia zarządzanie dostępem do danych na poziomie wierszy i kolumn
• Różnicuje dostęp do danych w tym samym obiekcie dla różnych użytkowników
• VPD określa się także jako: • Row-Level Security (RLS) lub • Fine Grained Access Control (FGAC)
• Stosuje sie na obiektach bazy takich jak: • Tabele, • Widoki • Synonimy
Jak działa VPD
• Użytkownik wykonuje polecenie DML:• SELECT * FROM EMPLOYEES;
• Baza danych w tle dodaje dodatkową klauzulę WHERE• SELECT * FROM EMPLOYEES WHERE SALARY < 5000;
• Użytkownik dostaje zawężony zestaw wierszy w zależności od zastosowanej klauzuli WHERE
• Klauzula WHERE wyliczana jest w funkcji PL/SQL• Polityka bezpieczeństwa VPD określa z którym
obiektem związana jest która funkcji PL/SQL
Komponenty VPD
• Funckje PL/SQL
• Polityki bezpieczeństwa
• Kontekst aplikacji
Funkcja PL/SQL
• Funkcje używane są do wyliczania dodatkowej klauzuli WHERE
• Funkcje VPD mają określoną strukturę:• Przyjmują dwa parametry wejściowe typu VARCHAR2
• Nazwa schematu • Nazwa obiektu
• Zwracają VARCHAR2
• Funkcje VPD umieszcza się najczęściej w schemacie SYS lub specjalnie na ten cel utworzonym koncie użytkownika
Przykład funkcji VPD
CREATE OR REPLACE FUNCTION VPD_FILTER_EMP_ROWS ( schema_var IN VARCHAR2, table_var IN VARCHAR2 ) RETURN VARCHAR2 IS return_val VARCHAR2 (400); BEGINreturn_val := 'SALARY < 5000';
RETURN return_val; END VPD_FILTER_EMP_ROWS;
Polityka bezpieczeństwa VPD
• Polityka VPD określa: • Który obiekt (tabela, widok, synonim) ma być chroniony• Jaka funkcja PL/SQL ma być użyta• Operacje DML w których ma być stosowana (S, U, I, D)• Typ polityki
• Statyczna• Dynamiczna • Współdzielona
Przykład polityki bezpieczeństwa VPD
DBMS_RLS.ADD_POLICY ( object_schema => 'hr', object_name => 'emp', policy_name => 'filter_emp_policy', function_schema => 'sys', policy_function => 'filter_emp_rows_func', statement_types => 'select, insert, update, delete' );• DBA_POLICIES – informacje o istniejących politykach
Kontekst aplikacyjny
• Przechowuje zmienne środowiskowe w bazie danych• Zmienne sesyjne
• Użytkownik, klient, host, itp• Zmienne aplikacyjne
• Ustawiane przez aplikację dostępową
• Zmienne zapisuje się za pomocą:• DBMS_SESSION.SET_CONTEXT
• Zmienna odczytuje się za pomocą funcji • SYS_CONTEXT
Kontekst aplikacyjny - przykłady
• SYS_CONTEXT('USERENV', 'SESSION_USER')
• SYS_CONTEXT('USERENV', 'LANG')
• SYS_CONTEXT('USERENV',
'DB_UNIQUE_NAME')
• SYS_CONTEXT('USERENV', 'HOST')
• SYS_CONTEXT('USERENV', 'OS_USER')
Profile
Profile użytkowników
Profil:• Kontroluje użycie
zasobów (np. CPU, pamięć, operacje I/O)
• Zarządza statusem konta, hasłem
• Zarządza parametrami sesji (max. czas połączenia, ilość sesji równoległych itp.)
Implementacja polityki haseł
Historia haseł
Blokowanie konta
Wygasanie hasła
Weryfikacja złożoności
hasła
Użytkownik Ustawienie profilu
Uwaga!
Nie używać profili z polityką haseł dla konta SYS, SYSMAN, DBSNMP
Tworzenie profilu z polityką haseł
Quota – ograniczenie dostępnej ilości przestrzeni dyskowej
• Użytkownicy mogą mieć:• Ograniczoną przestrzeń określaną przez administratora• Nieograniczoną ilość przestrzeni do wykorzystania
• Nieograniczona przestrzeń tylko z uprawnieniem systemowym• UNLIMITED TABLESPACE
• Bez tego uprawnienia użytkownik musi mieć przydzielony limit w jakieś przestrzeni tabel
• Nie stosuje się ograniczeń do przestrzeni tabel TEMP i UNDO
Dziękuję za uwagę i
zapraszam na ćwiczenia