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 PROFILE ;
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ąć.
Brak komentarzy:
Prześlij komentarz