Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałSeweryna Majsterek Został zmieniony 11 lat temu
1
Zarządzanie bezpieczeństwem w SZBD Oracle
Użytkownicy, uprawnienia i role, profile
2
Dwie kategorie ochrony SZBD
Ochrona systemu: weryfikacja nazwy użytkownika i hasła określenie czy użytkownik ma możliwość połączenia się z bazą danych (autoryzacja) przydzielanie miejsca na dysku dla obiektów użytkownika określenie ograniczeń na zasoby dla użytkownika Określenie jakie operacje systemowe użytkownik może wykonywać Możliwość monitorowania bazy danych Ochrona danych: Określenie jacy użytkownicy mają prawo dostępu do określonych schematów obiektów Określenie jakie typy operacji są dozwolone określonym użytkownikom Wybranie operacji, które będą monitorowane dla każdego schematu obiektów
3
Ograniczanie dostępu do informacji oparte na uprawnieniach
Sposób funkcjonowania SZBD ORACLE jest zgodny z modelem Dyskrecjonalnej (uznaniowej) kontroli dostępu (Discretionary Access Control – DAC) Ograniczanie dostępu do informacji oparte na uprawnieniach Odpowiednie uprawnienia muszą być związane z użytkownikiem, by miał dostęp do obiektu Uprzywilejowany użytkownik może przekazywać innym użytkownikom uprawnienia zgodnie z własnym uznaniem
4
Sposoby utrzymywania bezpieczeństwa bazy danych
Użytkownicy bazy danych Schematy Uprawnienia (przywileje) Role Ograniczenia pamięci (quota) Profile Obserwacja
5
Kontrola dostępu do bazy poprzez modyfikowanie, usuwanie i monitorowanie użytkowników
Tworzenie użytkowników i przypisywanie im haseł autoryzowanie użytkowników do podłączenia się do bazy ograniczanie dostępnej przestrzeni dyskowej dla każdego użytkownika
6
Użytkownik a jego schemat
Każda baza danych w SZBD ORACLE ma zdefiniowaną listę nazw użytkowników Z każdym użytkownikiem związany jest schemat o tej samej nazwie (tworzony, gdy tworzony użytkownik) Wszystkie obiekty użytkownika są logicznymi strukturami i znajdują się w schemacie użytkownika (który jest logiczną kolekcją obiektów użytkownika) po podłączeniu się do bazy użytkownik ma dostęp do wszystkich obiektów zawartych w jego schemacie Każdy użytkownik ma domenę ochrony (a security domain) - zbiór właściwości, które określają: akcje (przywileje i role) dostępne dla użytkownika ograniczenia zasobów przestrzeni tabel ograniczenia zasobów systemowych dostęp do bazy i jej obiektów jest kontrolowany poprzez przywileje nadane każdemu schematowi
7
Obszary kontroli dostępu
Ograniczenia dla dostępnych przestrzeni tabel Domyślna przestrzeń tabel Tymczasowa przestrzeń tabel Informacje o uwiarygodnieniu Ograniczenia zasobów systemowych Przywileje i role
8
Domyślna przestrzeń tabel (TABLESPACE DEFAULT)
Mechanizmy ochrony dostępu do zasobów bazy i systemu związane z użytkownikiem Domyślna przestrzeń tabel (TABLESPACE DEFAULT) Tymczasowa przestrzeń tabel (TEMPORARY TABLESPACE) ograniczenia zasobów w przestrzeni tablic (TABLESPACE QUOTA) ograniczenia zasobów systemowych (SYSTEM RESOURCE LIMIT) - domyślna przestrzeń tabel - określa lokalizację tworzonych przez użytkownika obiektów, domyślnie przydzielana użytkownikom jest przestrzeń SYSTEM - tymczasowa przeztrzeń tabel - miejsce na dysku, wykorzystywane przez baze przy używaniu operacji SQL’a (np..: sortowanie, grupowanie) - ograniczenia zasobów w przestrzeni tabel - określa maksymalną ilość miejsca na dysku, jaką użytkownik może zająć w przestrzeni danej tabli; 0 - oznacza, że obiekty pozostają, ale nie mogą alokować nowej przestrzeni, przestrzeń tablic jest niedostępna dla użytkownika ANLIMITED - oznacza, że użytkownik nie ma żadnych ograniczeń na rozmiar miejsca na dysku jaki może zająć w przestrzeni tabel umożliwia administratorowi ograniczenie możliwości przepełnienia przestrzeni tablic - ograniczenia zasobów systemowych - parametr ten określa: - ilość czasu CPU przeznaczony na obsługę zadań jednego użytkownika - logiczną ilość odczytów z dysku na potrzeby jednego użytkownika - ilość konkurencyjnych sesji otwartych przez jednego użytkownika na kilku komputerach - ilość czasu bez wykonywania operacji na bazie (idle_time)
9
Kontrola praw dostępu - uwiarygodnienie
poprzez system operacyjny poprzez bazę Oracle - poprzez system operacyjny - w celu wyeliminowania hasła przy podłączeniu się do bazy, konto w bazie jest powiązane z kontem w systemie operacyjnym w sposób określony przez DBA - poprzez bazę: - hasło tworzone wraz z użytkownikiem - przechowywanie nazwy użytkownika wraz z jego zaszyfrowanym hasłem - weryfikacja przy podłączaniu użytkownika do bazy
10
Użytkownicy sys i system
SYS - właściciel słownika danych SYS - hasło po instalacji „CHANGE_ON_INSTALL” SYSTEM - pierwszy administrator bazy, który ma wszystkie prawa do zarządzania bazą danych SYSTEM - hasło po instalacji „MANAGER” - SYS - służy do stworzenia bazy oraz obiektów podczas rozpoczynania pracy z bazą (tabel, przestrzeni) - SYSTEM - użytkownik służy do tworzenia użytkowników Przy tworzeniu administratora bazy danych trzeba pamiętać, by należał on do grupy DBA (realizowane jest na poziomie systemu operacyjnego)- jeśli chcemy by łączył się on z bazą jako internal.
11
Tworzenie użytkowników
Polecenie CREATE USER: CREATE USER user IDENTIFIED BY password EXTERNALLY DEFAULT TABLESPACE tablespace TEMPORARY TABLESPACE tablespace PROFILE profile QUOTA integer ON tablespace (np.: dla kilku przestrzeni) UNLIMITED PASSWORD EXPIRE ACCOUNT LOCK | UNLOCK Quota - określenie limitu miejsca w przestrzeni tabel 0 - oznacza, że obiekty pozostają, ale nie mogą alokować nowej przestrzeni, przestrzeń tablic jest niedostępna dla użytkownika Użytkownik jeśli nie ma nadanego prawa ALTER USER (a tylko DBA je ma) może zmienić sobie tylko hasło.
12
Przykład CREATE USER student IDENTIFIED BY studencik
DEFAULT TABLESPACE stud_grup TEMPORARY TABLESPACE stud_temp PROFILE default QUOTA 150M ON stud_grup
13
Uwiarygodnienie powiązane z systemem operacyjnym
Podłączanie do bazy przy użyciu weryfikacji konta systemu operacyjnego CREATE USER user IDENTIFIED EXTERNALLY; możliwe podłączenie się do bazy poprzez wpisanie komendy sqlplus /
14
CREATE USER kadrowy IDENTIEFIED EXTERNALLY
baza danych tworzy konto użytkownika, które musi być zweryfikowane przez system operacyjny, należy ustawić parametr OS_AUTHENT_PREFIX i użyć go jako prefix nazwy użytkownika (definiuje on prefix jaki Oracle dodaje do początku nazwy użytkownika systemu operacyjnego) Oracle porównuje nazwy użytkowników poprzedzone prefixem z nazwami użytkowników w bazie, jeśli są jednakowe następuje połączenie z bazą (sqlplus/) niech OS_AUTHENT_PREFIX=OPS$ nazwa użytkownika w SO „kadrowy” w bazie Oracle’a konto o nazwie „OPS$kadrowy” następuje dołożenie prefixu do nazwy użytkownika zdefiniowanego w systemie operacyjnym i porównanie z nazwą użytkownika z bazie
15
= SO sqlplus / BD OS_AUTHENT_PREFIX = OPS$ OPS$ kadrowy kadrowy
weryfikacja uprawnień użytkownika ops$kadrowy w bd OPS$kadrowy = sqlplus / OPS$kadrowy BD CREATE USER OPS$kadrowy IDENTIEFIED EXTERNALLY
16
Zmiana definicji użytkownika
Polecenie ALTER USER: ALTER USER user IDENTIFIED BY password EXTERNALLY DEFAULT TABLESPACE tablespace TEMPORARY TABLESPACE tablespace PROFILE profile QUOTA integer ON tablespace PASSWORD EXPIRE ACCOUNT LOCK | UNLOCK Zmiany tej może dokonać tylko użytkownik mający przywilej ALTER USER. Można nadać lub zmienić użytkownikowi domyśle role: DEFAULT ROLE ALL - użytkownik ma nadane domyślnie wszystkie role EXCEPT nazwa_roli - wszystkie z wyjątkiem poprzedzonej słowem EXCEPT NONE - nie ma domyślnie żadnych ról
17
Przykład ALTER USER student IDENTIFIED BY studencik
DEFAULT TABLESPACE prac_ts TEMPORARY TABLESPACE temp_ts PROFILE default QUOTA 260M ON prac_ts DEFAULT ROLE studenci
18
Usunięcie użytkownika
Polecenie DROP USER: DROP USER user CASCADE Użytkownik aktualnie podłączony do bazy nie może być usunięty. CASCADE - usunięcie użytkownika wraz z wszystkimi obiektami stworzonymi przez niego stworzonymi Nie da się odwołać poleceniem ROLLBACK
19
Monitorowanie użytkowników
Słownik bazy danych zawiera informacje o: wszystkich użytkownikach bazy danych domyślnych przestrzeniach tabel, klasterów, indeksów dla każdego użytkownika przestrzeniach używanych dla obiektów tymczasowych ograniczeniach przestrzeni Potrzebne perspektywy słownika danych: USER_USERS, ALL_USER, DBA_USER, USER_TS_QUOTAS, DBA_TS_QUOTAS
20
Przerwanie sesji użytkownika
nie dopuszcza użytkowników do dalszej pracy z bazą zwalnia zablokowane zasoby i stany użytkowników może wyświetlać wiadomość dla użytkownika wymaga przywileju ALTER SYSTEM SHUTDOWN IMMEDIATE - podczas zamykania bazy danych jest alternatywą do przerwania sesji użytkownika KIEDY należy przerwać? Gdy użytkownik blokuje zasoby niezbędne natychmiast innemu użytkownikowi DBA musi zamknąć bazę
21
Zakończenie sesji użytkownika
Polecenie ALTER SYSTEM: ALTER SYSTEM KILL SESSION ‘integer1, integer2’ integer1 - identyfikator użytkownika SID integer2 - numer użytkownika (integer1, integer2 określane na podstawie perspektywy V$SESSION) Efekty zakończenia sesji użytkownika przez wydanie polecenia: ALTER SYSTEM KILL SESSION - wycofanie bieżących transakcji - zwolnienie aktualnie trzymanych blokad na tabelach lub wierszach - zwalnianie wszystkich zasobów zarezerwowanych przez użytkownika
22
Zadania DBA związane z obsługą użytkowników
zarządzanie bezpieczeństwem bazy danych tworzenie, modyfikacja, monitorowanie i usuwanie użytkowników przerywanie sesji użytkowników w razie konieczności
23
Przywileje dzielimy na:
Przywileje i role Przywileje bazodanowe - prawa do wykonywania określonych operacji na bazie przez uprawnionych przywilejem Przywileje dzielimy na: obiektowe systemowe Uprawnienia użytkownika można nadawać na dwa sposoby: - bezpośrednio - poprzez role (grupy uprawnień)
24
Przywileje systemowe Pozwalają na wykonywanie określonych czynności na bazie danych i typach obiektów bazy (tabelach, sekwencjach, klasterach) Typy przywilejów: we własnym schemacie (create table) na wszystkich obiektach w dowolnym schemacie (update any table) w systemie (create session) Informacje o przywilejach systemowych: Dba_sys_privs, user_sys_privs, role_sys_privs, session_privs
25
Przykłady przywilejów systemowych (perspektywa System_privilege_map)
ALTER DATABASE - pozwala użytkownikowi na modyfikację struktury bazy, CREATE PROCEDURE - pozwala użytkownikowi na tworzenie w obrębie swojego schematu procedur, funkcji i pakietów zapisywanych w bazie, CREATE ROLE - umożliwia użytkownikowi tworzenie ról bazodanowych, CREATE SESSION - przywilej ten pozwala użytkownikowi bazy na otwarcie sesji, czyli połączenie z bazą, CREATE TABLE - umożliwia użytkownikowi bazy utworzenie tablicy w obrębie własnego schematu, UPDATE ANY TABLE - umożliwia użytkownikowi zmianę zawartości wierszy każdej tablicy w dowolnym schemacie bazy, ALTER TABLESPACE - zezwala użytkownikowi bazy na dodawanie nowych plików przestrzenie już istniejące, CREATE USER - umożliwia tworzenie definicji nowych użytkowników bazy.
26
SELECT TABLE adm.pracownik
Przywileje obiektowe Pozwalają na wykonywanie określonych czynności na konkretnych obiektach bazy (tabeli, perspektywie, sekwencji, procedurze wbudowanej) Przykład: SELECT TABLE adm.pracownik Użytkownik ma wszystkie przywileje obiektowe na obiektach własnego schematu. Przywileje obiektowe nadawane są użytkownikom bazy, którzy nie są właścicielami obiektu. Obiekty takie jak klastery, indeksy, triggery nie mają związanych przywilejów obiektowych DML - operacje zmieniające zawartości tabel (update, insert), DDL - operacje zmieniające strukturę tabel (alter index, fererences),
27
Przykłady przywilejów obiektowych
ALTER - ALTER obiekt (tabela lub sekwencja), CREATE TRIGGER ON obiekt (tylko dla tabel), DELETE - DELETE FROM obiekt (tabela lub perspektywa), TRUNCATE obiekt (tylko tabela), EXECUTE - EXECUTE obiekt (procedura lub funkcja), INSERT - INSERT INTO obiekt (tabela lub perspektywa), SELECT - SELECT .....FROM obiekt (tabela, perspektywa lub replikacja), UPDATE - UPDATE obiekt (tabela lub perspektywa). Pełną listę można uzyskać wykonując zapytanie do perspektywy słownika danych TABLE_PRIVILEGE_MAP.
28
Nadawanie i odbieranie przywilejów systemowych
Polecenie GRANT: GRANT system_priv TO user role role PUBLIC WITH ADMIN OPTION Polecenie REVOKE: REVOKE system_priv FROM user role role
29
Przykład GRANT CREATE SESSION , CREATE TABLE TO STUDENT
WITH ADMIN OPTION; REVOKE SELECT ANY TABLE, CREATE USER FROM STUDENT WITH ADMIN OPTION;
30
Nadawanie i odbieranie przywilejów obiektowych
Polecenie GRANT: GRANT list of object_priv (column1, column2) ON object TO user schema role role PUBLIC WITH GRANT OPTION Polecenie REVOKE: REVOKE objct_priv ON object schema FROM user role CASCADE CONSTRAINTS
31
Przykład Nadawanie uprawnień: GRANT select, update, insert
ON adm.pracownik TO student; Odbieranie uprawnień: REVOKE delete, update ON adm.dochody FROM student;
32
Role a przywileje U1 U2 U3 UŻYTKOWNICY P1 P2 P3 P4 PRZYWILEJE
N*M operacji nadania przywileju R ROLE N+M operacji P1 P2 P3 P4 PRZYWILEJE Czynności jakie należy wykonać, by zdefiniować role: Określenie grup użytkowników wykonujących na bazie podobne operacje i wymagających podobnych przywilejów bazodanowych związanych ze stanowiskiem pracy lub funkcjami. Na podstawie wyodrębnionych grup użytkowników należy stworzyć role zawierające niezbędne przywileje.
33
Role - cechy mogą składać się zarówno z przywilejów obiektowych jak i systemowych nie należą do żadnego użytkownika i schematu mogą być nadane dowolnemu użytkownikowi lub roli z wyjątkiem siebie mogą być włączone lub wyłączone dla każdego użytkownika mogą wymagać autoryzacji (hasła) do włączania mogą być sterowane z poziomu systemu operacyjnego
34
Zalety używania ról Ograniczenie liczby wymienianych uprawnień
nadawanie i odbieranie wielu przywilejów jednym poleceniem nadawanie roli nowemu użytkownikowi bez pamiętania wszystkich niezbędnych przywilejów uproszczenie zarządzania przywilejami w systemach z wieloma użytkownikami, wieloma tabelami Dynamiczna obsługa uprawnień zmienianie przywilejów roli, gdy zmieniają się obowiązki zmienianie przywilejów wielu użytkownikom zmieniając jedną rolę Wybiórcze udostępnianie uprawnień włączanie i wyłączanie ról, by włączyć i wyłączyć przywileje tymczasowo aplikacja może przeglądać słownik danych i włączać lub wyłączać role w razie potrzeby
35
Dodatkowe korzyści Wydajność
zarządzanie przywilejami baz kaskadowych odbierań przywilejów możliwość użycia systemu zabezpieczeń systemu operacyjnego przy zabezpieczaniu bazy danych Wydajność mniej indywidualnych przywilejów do sprawdzania i kodowania w aplikacji
36
Tworzenie i modyfikacja roli
Polecenie CREATE ROLE CREATE ROLE role NOT IDENTIFIED IDENTIFIED BY password EXTERNALLY Polecenie ALTER ROLE ALTER ROLE role
37
Przykłady CREATE ROLE pierwsza; CREATE ROLE druga IDENTIFIED BY xxzz;
CREATE ROLE trzecia IDENTIFIED EXTERNALLY;
38
Nadawanie, odbieranie i usuwanie ról
Nadawanie uprawnień roli GRANT: GRANT create synonym, create table TO manager Nadawanie ról - polecenie GRANT: GRANT role TO user Odbieranie ról - polecenie REVOKE: REVOKE role FROM user Usuwanie ról - polecenie DROP ROLE: DROP ROLE role
39
Włączanie i wyłączanie ról
można włączać i wyłączać role, które zostały uprzednio nadane przywileje nadane wyłączonej roli nie są dostępne użytkownikowi może być wymagane hasło lub autoryzacja przez system operacyjny polecenie SET ROLE włącza tylko podane role i wyłącza uprzednio włączone SET ROLE role IDENTIFIED BY password ALL EXCEPT role NONE
40
Występowanie efektu kaskady
przywileje obiektowe przywileje systemowe i role with grant option with grant option ADM PRAC STUD Użytkownik ADM odbiera uprawnienie użytkownikowi PRAC lub usuwa użytkownika Efekt: KASKADY – ani użytkownik ADM ani STUD nie mają już tego prawa with admin option with admin option ADM PRAC STUD Użytkownik ADM odbiera uprawnienie użytkownikowi PRAC lub usuwa użytkownika Efekt: BRAK KASKADY – użytkownik STUD posiada nadal te uprawnienia
41
Role OSOPER i OSDBA OSOPER - pozwala użytkownikowi na wykonanie STARTUP, SHUTDOWN, ALTER DATABASE OPEN/MOUNT, ALTER DATABASE BACKUP CONTROLFILE, ALTER TABLESPACE BEGIN/END BACKUP, ARCHIVE LOG, RECOVER. Rola ta zawiera także - przywilej RESTRICTED SESSION OSDBA - zawiera wszystkie przywileje systemowe z opcją WITH ADMIN OPTION i rolę OSOPER. Tylko ta rola pozwala na wykonanie CREATE DATABASE i odtwarzanie „do czasu” (time-based recovery)
42
Obsługa ról na poziomie systemu operacyjnego
System operacyjny przechowuje listę autoryzowanych ról role nadawane przez system operacyjny: muszą być najpierw utworzone w bazie mogą być nadane lub odebrane innej roli w Oracle’u mogą być włączane i wyłączane w Oracle’u nie mogą być nadane lub odebrane użytkownikowi w Oracle’u role kontrolowane przez system operacyjny są nadawane podczas podłączania, ale są wyłączone (jeśli nie są rolami domyślnymi) Zabezpieczenia na poziomie Systemu operacyjnego zaimplementowano w różny sposób na różnych systemach operacyjnych: - UNIX - implementacja poprzez grupy - VMS -implementacja poprzez identyfikatory praw procesów
43
Co należy zrobić aby móc zarządzać rolami z poziomu systemu operacyjnego?
Utworzyć role w Oracle’u nadać utworzonym rolom odpowiednie przywileje ustawić parametr inicjalizacyjny OS_ROLES na TRUE zamknąć i otworzyć bazę danych nadać każdemu użytkownikowi prawa w systemie operacyjnym do korzystania z ról format przywileju SO : ORA_SID_ROLE[_D][A] D - rola jest domyślna dla użytkownika A - rola została nadana z opcją WITH ADMIN OPTION użytkownik musi mieć nadany przywilej CREATE SESSION SET ROLE może być użyte do włączenia ról systemu operacyjnego, które nie są zdefiniowane jako domyślne SID - identyfikator bazy danych, ROLE - nazwa zdefiniowanej roli
44
Przykład: Konto użytkownika w systemie operacyjnym musi mieć zdefiniowane role w swoim profilu np.: ORA_NowaBaza_ROLA1 ORA_NowaBaza_ROLA2_A ORA_NowaBaza_ROLA3_D ORA_NowaBaza_ROLA4_DA Rola3 i rola4 są domyślne, rola2 i rola4 są dostępne z opcją ADMIN OPTION
45
Predefiniowane role Role tworzone przez skrypt catalog.sql
CONNECT - przywileje: Alter Session, Create Database Link, Create Sequence, Create Session, Create Synonym, Create Table, Create View RESOURCE - Create Cluster, Create Procedure, Create Sequence, Create Table, Create Trigger DBA - EXP_FULL_DATABASE, IMP_FULL_DATABASE, wszystkie przywileje systemowe z wyjątkiem: SYSTEM GRANT, READUP, WRITEUP, WRITEDOWN, TRUNCATE nadanie użytkownikowi roli RESOURCE lub DBA spowoduje nadanie przywileju UNLIMITED TABLESPACE przywilej UNLIMITED TABLESPACE nie może być nadany roli
46
Zadania administratora
Nadawanie użytkownikom praw do wykonania określonych operacji zezwalanie i zabranianie dostępu do danych i możliwości ich zmieniania zezwalanie i zabranianie możliwości wykonania funkcji systemowych i zmian struktury bazy danych nadawanie przywilejów użytkownikom i rolom nadawanie przywileju wszystkim użytkownikom (PUBLIC)
47
Profile i limity zasobów
Każdy użytkownik jest połączony z jakimś profilem, który określa ograniczenia do korzystania z różnych zasobów systemu dostępnych dla danego użytkownika. Zasoby systemowe: liczba równoległych sesji użytkownika, czas CPU na poziomie sesji użytkownika, na poziomie pojedynczego wywołania podczas wykonania zdania SQL, operacje we/wy czas spoczynku (idle time) czas podłączenia Profile mogą być tworzone, zmieniane, usuwane, Kontrola ograniczeń może być włączana lub wyłączana, Ograniczenia - określane indywidualnie lub jako ograniczenia złożone, Sprawdzanie ustawienia profili odbywa się poprzez perspektywy słownika danych
48
Profile stosowane są w celu:
Ograniczenia ilości zasobów systemowych dostępnych dla użytkownika, Uniemożliwienia użytkownikom operacji zbyt mocno obciążających zasoby, Uproszczenia zarządzania zasobami, Przypisania indywidualnych lub domyślnych limitów użytkownikom, Specyfikacji ograniczenia zasobów dla grupy użytkowników, Zarządzania zasobami w dużych, złożonych systemach Ograniczenia użycia zasobów na poziomie sesji lub odwołania (call), Odłączenia po odpowiednio długim czasie oczekiwania w sesji, Wylogowania użytkowników jeśli nie pracują (idle). Jeśli limit CALL jest przekroczony, aktualne polecenie SQL jest wycofane i blokady są zwolnione, jednak użytkownik pozostaje podłączony do bazy, Jeśli zasoby na poziomie SESSION są przekroczone, sesja użytkownika zostaje zakończona. Następne polecenie spowoduje wystąpienie błędu, Parametr RESOURCE_LIMIT musi być ustawiony na TRUE, aby profile były weryfikowane.
49
wykonanie zdania jest zatrzymane, zadnie jest wycofywane,
Wprowadzanie ograniczeń może być na poziomie: sesji, wywołania lub na obydwu. Co dzieje się, gdy ograniczenia na poziomie sesji są przekroczone? Na poziomie wywołania wykonanie zdania jest zatrzymane, zadnie jest wycofywane, poprzednie polecenia są nienaruszone, dalsza praca w sesji odbywa się normalnie. Na poziomie sesji bieżące polecenie jest wycofywane, poprzednie polecenia są nienaruszane, dozwolone są tylko operacje: COMMIT, ROLLBACK i odłączenie, nie można wykonać żadnej, znaczącej pracy w tej sesji. Ograniczenia na poziomie sesji są egzekwowane dla każdego podłączenia. Ograniczenia na poziomie wywołania są egzekwowane dla każdego wywołania podczas wykonania zdania SQL.
50
Zasoby kontrolowane na poziomie sesji lub na poziomie wywołania
CPU_PER_SESSION, SESSION_PER_USER, CONNECT_TIME, IDLE_TIME, LOGICAL_READS_PER_SESSION, PRIVATE_SGA Na poziomie wywołania: CPU_PER_CALL LOGICAL_READS_PER_CALL CPU_PER_SESSION - całkowity czas CPU mierzony w setnych sekundach SESSION_PER_USER - liczba równoległych sesji jednego użytkownika CONNECT_TIME - czas podłączenia mierzony w minutach IDLE_TIME - czas w sesji bez pracy mierzony w minutach LOGICAL_READS_PER_SESSION - liczba bloków danych (czytanych fizycznie i logicznie) PRIVATE_SGA- prywatny obszar w SGA mierzony w bajtach (tylko dla MTS) CPU_PER_CALL - czas CPU mierzony w setnych sekundy LOGICAL_READS_PER_CALL - liczba bloków danych UWAGI: IDLE_TIME - mierzony tylko dla procesu usługowego, nie zwiększa się podczas pracy aplikacji, ograniczenie IDLE_TIME nie ma znaczenia dla długich zapytań, czy innych długich operacji LOGICAL_READS_PER_SESSION - jest ograniczeniem czytania zarówno z dysku jak i z pamięci. Może być zastosowane dla uniemożliwienia zbyt dużego obciążenia pamięci lub dysku. PRIVATE_SGA - może być określone tylko w architekturze serwera wielokanałowego
51
Polecenie: CREATE PROFILE
Tworzenie profilu Polecenie: CREATE PROFILE CREATE PROFILE profil LIMIT SESSION_PER_USER integer UNLIMITED DEFAULT CPU_PER_SESSION CPU_PER_CALL CONNECT_TIME IDLE_TIME LOGICAL_READS_PER_CALL LOGICAL_READS_PER_SESSION COMPOSITE_LIMIT PRIVATE_SGA integer w K lub M Do tworzenia profilów potrzebny jest przywilej CREATE PROFILE Do tworzenia profili potrzebny jest przywilej CREATE PROFILE COMPOSITE_LIMIT - ograniczenie całkowitego kosztu zasobów dla sesji wyrażone w jednostkach usługowych UNLIMITED - oznacza, że użytkownik nie ma ograniczeń na danym zasobie DEFAULT - oznacza, że obowiązują ograniczenia wyznaczone w profilu DEFAULT
52
Polecenie: ALTER PROFILE
Zmiana profilu Polecenie: ALTER PROFILE ALTER PROFILE profil LIMIT SESSION_PER_USER integer UNLIMITED DEFAULT CPU_PER_SESSION CPU_PER_CALL CONNECT_TIME IDLE_TIME LOGICAL_READS_PER_CALL LOGICAL_READS_PER_SESSION COMPOSITE_LIMIT PRIVATE_SGA integer w M lub Do zmiany definicji profilu potrzebny jest przywilej ALTER PROFILE Zmiany profilu nie dotyczą bieżących sesji, skutek będzie widoczny w sesjach rozpoczętych póŸniej.
53
Przykłady: CREATE PROFILE pracownik LIMIT SESSION_PER_USER 4
CPU_PER_CALL UNLIMITED IDLE_TIME 40; ALTER PROFILE pracownik LIMIT SESSION_PER_USER 3 CPU_PER_SESSION 20000 IDLE_TIME 20 LOGICAL_READS_PER_CALL 1500;
54
Określenie ograniczenia dostępu do zasobów
Dla każdego profilu należy określić odpowiednie ograniczenia, tzn.: pogrupować użytkowników, określić ograniczenia dla każdej grupy. Aby określić odpowiednie ograniczenia zasobów trzeba zebrać informacje archiwalne o użytkowaniu zasobów (o czasie połączenia, odczytach fizycznych i logicznych).
55
Profil domyślny (Default)
Istnieje w każdej bazie danych, Jeżeli użytkownikowi nie nadamy profilu to ma on profil domyślny, Dotyczy wszystkich zasobów nie ujętych w ograniczeniach innych profili, Początkowo nie ma ograniczeń na zasoby, Może być zmieniany, tak aby żaden użytkownik nie miał nieograniczonego dostępu do zasobów.
56
Przydzielanie profili (w momencie tworzenia lub zmiany definicji użytkownika)
CREATE USER CREATE USER asystent IDENTIFIED BY 01asyst89 DEFAULT TABLESPACE asyst1 TEMPORARY TABLESPACE temp PROFILE pracownik; ALTER USER ALTER USER doktor Skutki przydzielania profilu nie są widoczne w bieżącej sesji, aby przydzielić profil należy mieć przywilej ALTER USER, profile mogą być przydzielane tylko użytkownikom.
57
Ograniczenie użycia wielu zasobów - stosując ograniczenie złożone
Ogranicza użycie wielu zasobów, Jest sumą ważoną ograniczeń: CPU_PER_SESSION, CONNECT_TIME, PRIVATE_SGA, LOGICAL_READS_PER_SESSION, Jest określone w jednostkach usługowych, Może być użyte z ograniczeniem indywidualnym, Daje dodatkowe możliwości ograniczania dostępu do zasobów. Należy zebrać informacje statystyczno-archiwalne na temat użycia zasobów, które ograniczone są ograniczeniem złożonym. Jakiekolwiek osiągnięte ograniczenie zatrzymuje akcję sesji.
58
Określenie kosztu zasobu
Koszty zasobów Używane do wag CPU_PER_SESSION, CONNECT_TIME, PRIVATE_SGA, LOGICAL_READS_PER_SESSION, Stosowane tylko do ograniczeń złożonych w profilu, nie stosowane przy indywidualnych ograniczeniach dostępu do zasobu. Określenie kosztu zasobu Polecenie: ALTER RESOURCE COST ALTER RESOURCE COST CPU_PER_SESSION integer CONNECT_TIME integer LOGICAL_READS_PER_CALL integer LOGICAL_READS_PER_SESSION integer PRIVATE_SGA integer integer - waga zasobu dla zmiany kosztu zasobu potrzebny jest przywilej ALTER RESOURCE COST, jeśli waga nie jest wyspecyfikowana lub wynosi zero - nie jest brana pod uwagę całkowity koszt zasobów dla sesji jest wyrażony w jednostkach usługowych
59
Całkowity koszt zasobów dla sesji - wzór:
Total Resource Cost = (CPU_used * weight) + (Connect_time_used*weight) + (Logical_reads_used_in_session * weight) + (Private_SGA_used * weight) Przykład Ustawienie kosztów zasobów: ALTER RESOURCE COST CPU_PER_SESSION 10 LOGICAL_READS_PER_SESSION 25 PRIVATE_SGA 5; Total Resource Cost = (CPU_used * 10) + (Logical_reads_used_in_session * 25) + (Private_SGA_used * 5) Przykład: CREATE PROFILE stud LIMIT COMPOSITE_LIMIT
60
Włączanie i wyłączanie kontroli użycia zasobów - poprzez ustawienie parametru startowego RESOURCE_LIMIT lub komendę ALTER SYSTEM. Parametr startowy RESOURCE_LIMIT - włączenie lub wyłączenie kontroli użycia zasobów - poprzez zmianę parametru i ponowne wystartowanie bazy danych (TRUE - włączenie kontroli, FALSE - wyłączenie kontroli). Stosowany tylko gdy baza może być zamknięta. Komenda ALTER SYSTEM - Użycie tej komendy powoduje włączenie lub wyłączenie kontroli użycia zasobów. Ustawienie dokonane za pomocą tej komendy utrzymuje się do następnej zmiany lub do zamknięcia bazy danych. Stosowany, gdy baza danych nie może być zamknięta lub zmiana ma być tymczasowa.
61
Przykład: Polecenie: ALTER SYSTEM ALTER SYSTEM
SET RESOURCE_LIMIT = TRUE FALSE Do użycia tej komendy potrzebny jest przywilej ALTER SYSTEM.
62
Polecenie: DROP PROFILE DROP PROFILE profile
Usuwanie profili Polecenie: DROP PROFILE DROP PROFILE profile CASCADE profile - nazwa usuwanego profilu CASCADE - automatyczne przypisanie profilu DEFAULT użytkownikom związanym z tym profilem Przykład: DROP PROFILE pracownik CASCADE;
63
Oglądanie ustawienia profilu
W celu obejrzenia ustawienia profilu należy skorzystać z perspektyw słownika danych: DBA_USERS, USER_RESOURCE_LIMITS, DBA_PROFILES, RESOURCE_COST
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.