Profile

 

Podstawowe informacje o profilach
 
Aby włączyć możliwość modyfikowania przez nas profili musimy zacząć od wydania polecenia:
 
ALTER SYSTEM SET RESOURCE_LIMIT=TRUE;
 
 
Reguły dotyczące systemu:
 
SESSIONS_PER_USER – liczba określająca maksymalną ilość sesji użytkownika,
 
CPU_PER_CALL – liczba (setnych sekund) określająca maksymalny czas CPU przydzielony sesji,
 
CONNECT_TIME – określa maksymalną długość sesji użytkownika, czas ten wyrażony jest w minutach,
 
IDLE_TIME – maksymalny czas bezczynności wyrażony w minutach, (jeżeli użytkownik czeka "bezczynnie" na
wykonanie długiego zapytania to czas ten nie wlicza się do IDLE_TIME),
 
LOGICAL_READS_PER_SESSION – maksymalna ilość bloków (znajdujących się w pamięci RAM i na dysku
twardym) jaka może być wykorzystana na potrzeby jednego zapytania (gdzie zapytanie dzieli się na parsowanie,
wykonanie, zwrócenie wyników),
 
LOGICAL_READS_PER_CALL – maksymalna ilość bloków potrzeban na jedno zapytanie (gdzie zapytanie dzieli
się na parsowanie, wykonanie, zwrócenie wyników),
 
PRIVATE_SGA – maksymalna liczba pamięci (w bajtach) jaką sesja może wykorzystać z ang. shared pool z SGA
(ang. System Globar Area), można dodać przedrostek „K” lub „M” aby liczbę tą wyrazić w kilo lub megabajtach,
Reguły dotyczące haseł:
 
FAILED_LOGIN_ATTEMPTS – maksymalna ilość nieudanych prób zalogowania, po jej przekroczeniu konto
zostanie zablokowane,
 
PASSWORD_LIFE_TIME – maksymalny czas życia hasła, po jego upływie zalogowanie jest niemożliwe dopóki
hasło nie zostanie zmienione,
 
PASSWORD_REUSE_TIME – czas w dniach po którym hasło może być powtórnie wykorzystane, (przy zmianie
hasła),
 
PASSWORD_REUSE_MAX – minimalna ilość zmian haseł po którym hasło może być powtórnie wykorzystane, po przypisaniu tej opcji dowolnej liczby, opcji PASSWORD_REUSE_TIME należy przypisać wartość „unlimited”,
 
PASSWORD_LOCK_TIME – liczba dni po jakich konto zostanie odblokowane, po maksymalnej liczbie nieudanych zalogowań,
 
PASSWORD_GRACE_TIME – maksymalny czas życia hasła, w dniach,
 
PASSWORD_VERIFY_FUNCTION – skrypt weryfikujący poprawność hasła, co ciekawe można tu umieścić każdy program napisany w języku PL/SQL, a to daje ogromne możliwości weryfikacji. Przykładowe scenariusze „użytkownik może się zalogować tylko od godziny 8 – 16”, lub „jeżeli login użytkownika jest inny niż Bartek to zwróć losowy wyjątek i przerwij sesje”;
 
Profil DEFAULT
 
Każda baza ma profil o nazwie DEFAULT jest on domyślnie powiązany z każdym użytkownikiem. Każdy kolejny profil dziedziczy z profilu DEFAULT. Np. jeżeli nowy profil nie ma zdefiniowanego parametru IDLE_TIME, to przyjmuje wartość UNLIMITED z profilu DEFAULT. Profil DEFAULT każdej regule przypisuje wartość UNLIMITED, co oznacza parametr niezdefiniowany, czyli barak ograniczeń. Profil DEFAULT jest domyślnie przydzielany każdemu użytkownikowi. Polecenie zwracające listę profilów zainstalowanych w bazie danych Oracle wygląda następująco:
 
SELECT * FROM DBA_PROFILES;
 
 
 
Tworzenie profili
 
Profil może być utworzony, powiązany z użytkownikiem, jak i odebrany użytkownikowi w dowolnej chwili. Zmienione lub nowe profile obowiązują od chwili nawiązania nowej sesji. Przykładowa komenda tworząca nowy profil o nazwie „profil1” wygląda następująco:
 
CREATE PROFILE profil1 LIMIT
SESSIONS_PER_USER 3
FAILED_LOGIN_ATTEMPTS 3
IDLE_TIME 30;
 

Po stworzeniu profilu można go powiązać z użytkownikiem, a będzie on obowiązywać po rozpoczęciu nowej sesji. Użytkownik w danej chwili może mieć przypisany tylko jeden profil. Każdy kolejny nadpisuje poprzedni. Poniżej przedstawiono komendę, która przypisuje profil użytkownikowi:
 
ALTER USER <użytkownik>PROFILE ;</użytkownik>
 
 
 
Usuwanie profilu
 
Profil można usunąć (pod warunkiem, że nie jest powiązany z użytkownikiem), za pomocą komendy:
 
DROP PROFILE ;
 
 
Chcąc usunąć profil powiązany z użytkownikiem należy dodać opcję CASCADE:
 
DROP PROFILE CASCADE;
 
 
Po odebraniu użytkownikowi profilu, np. przez jego usunięcie, automatycznie przydzielony mu zostaje profil DEFAULT, który zacznie obowiązywać po ustanowieniu nowej sesji. Profilu DEFAULT nie można usunąć.