Michał Szkopiński

33
<Insert Picture Here> Administracja serwerem bazy danych Oracle 11g Zarządzanie użytkownikami i bezpieczeństwem danych Wykład nr 3 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 Presentation

Transcript of Michał Szkopiński

Page 1: Michał Szkopiński

<Insert Picture Here>

Administracja serwerem bazy danych Oracle 11gZarządzanie użytkownikami i bezpieczeństwem danych

Wykład nr 3

Michał Szkopiński

Page 2: Michał Szkopiński

Konta użytkowników

Page 3: Michał Szkopiński

Konto użytkownika bazy danych

• Każde konto użytkownika zawiera:• Unikalną nazwę• Metodę uwierzytelnienia• Domyślną przestrzeń tabel• Tymczasową przestrzeń tabel• Profil• Status

Page 4: Michał Szkopiński

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ąć

Page 5: Michał Szkopiński

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

Page 6: Michał Szkopiński

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

Page 7: Michał Szkopiński

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

Page 8: Michał Szkopiński

Uprawnienia

Page 9: Michał Szkopiński

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

Page 10: Michał Szkopiński

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

Page 11: Michał Szkopiński

GRANT

REVOKE

Odwoływanie uprawnień systemowychz ADMIN OPTION

REVOKE CREATE TABLE FROM jan;

Użytkownik

Uprawnienie

Obiekt

DBA Jan Ewa

Jan EwaDBA

Page 12: Michał Szkopiński

GRANT

REVOKE

Odwoływanie uprawnień obiektowych z GRANT OPTION

DBA Jan Ewa

EwaJanDBAKaskadowe odbieranie uprawnień

Page 13: Michał Szkopiński

Role

• Łatwiejsze zarządzanie uprawnieniami• Dynamiczne przydzielanie i usuwanie uprawnień

wielu użytkownikom• Tymczasowe włączanie ról i ochrona hasłem

Page 14: Michał Szkopiński

Zarządzanie rolami

Użytkownicy

Uprawnienia

Role HR_CLERKHR_MGR

Jan Adam Ewa

Delete

Employees.

Select

Employees.

Update

Employees.

Insert

Employees.

Create

Job.

Page 15: Michał Szkopiński

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

Page 16: Michał Szkopiński

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?

Page 17: Michał Szkopiński

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

Page 18: Michał Szkopiński

Niskopoziomowe zarządzanie uprawnieniami - VPD

Page 19: Michał Szkopiński

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

Page 20: Michał Szkopiński

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

Page 21: Michał Szkopiński

Komponenty VPD

• Funckje PL/SQL

• Polityki bezpieczeństwa

• Kontekst aplikacji

Page 22: Michał Szkopiński

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

Page 23: Michał Szkopiński

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;

Page 24: Michał Szkopiński

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

Page 25: Michał Szkopiński

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

Page 26: Michał Szkopiński

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

Page 27: Michał Szkopiński

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')

Page 28: Michał Szkopiński

Profile

Page 29: Michał Szkopiński

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.)

Page 30: Michał Szkopiński

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

Page 31: Michał Szkopiński

Tworzenie profilu z polityką haseł

Page 32: Michał Szkopiński

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

Page 33: Michał Szkopiński

Dziękuję za uwagę i

zapraszam na ćwiczenia