oracle_administracja_3

Download Report

Transcript oracle_administracja_3

<Insert Picture Here>
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
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.)
Obiekytowe
Systemowe:
UPDATE TABLE
CREATE SESSION
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
Odwoływanie uprawnień systemowych
z ADMIN OPTION
DBA
Jan
Ewa
GRANT
Użytkownik
Uprawnienie
Obiekt
REVOKE
REVOKE CREATE
TABLE FROM jan;
DBA
Jan
Ewa
Odwoływanie uprawnień obiektowych
z GRANT OPTION
DBA
Jan
Ewa
GRANT
Kaskadowe odbieranie uprawnień
REVOKE
DBA
Jan
Ewa
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
Jan
Adam
Ewa
Użytkownicy
Role
Uprawnienia
HR_CLERK
HR_MGR
Delete
Create
Update
Employees.
Job.
Employees.
Insert
Select
Employees.
Employees.
Predefiniowane role w bazie danych
CONNECT
CREATE SESSION
RESOURCE
CREATE CLUSTER, CREATE INDEXTYPE, CREATE
OPERATOR, CREATE PROCEDURE, CREATE
SEQUENCE, CREATE TABLE, CREATE TRIGGER,
CREATE TYPE
SCHEDULER_ ADMIN CREATE ANY JOB, CREATE EXTERNAL JOB, CREATE
JOB, EXECUTE ANY CLASS, EXECUTE ANY
PROGRAM, MANAGE SCHEDULER
DBA
Większość uprawnień administracyjnych, ale bez
SYSDBA
SELECT_
Żadnych ról systemowych; Rola: HS_ADMIN_ROLE i
ponad 1,700 uprawnień obiektowych na tabelach
słownikowych bazy danych
CATALOG_ROLE
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);
BEGIN
return_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ł
Weryfikacja
złożoności
hasła
Użytkownik
Ustawienie
profilu
Wygasanie
hasła
Blokowanie
konta
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