Uploaded by Tasmali Sergiu

TDA OBD

advertisement
TDA OBD
Atestarea 1
I2101
Chiorescu Gheorghe
Auditarea BD 30 p
1. De creat un utilizator, cu privilegii necesare efectuarii auditului evenimentelor system si
obiect.
CREATE USER nume_utilizator IDENTIFIED BY 'parola_utilizator';
GRANT AUDIT_ADMIN TO nume_utilizator;
GRANT SELECT_CATALOG_ROLE TO nume_utilizator;
COMMIT;
(↑ pentru salvarea modificarilor)
2. De activat sistema de auditare.
ALTER SYSTEM pentru a activa sistemul de auditare si a specifica setarile pentru auditare.
De exemplu, pentru a activa auditarea tuturor accesurilor la tabela "X"
ALTER SYSTEM SET AUDIT_TRAIL_DB=TRUE SCOPE=SPFILE;
AUDIT SELECT, UPDATE, DELETE, INSERT ON X BY ACCESS;
AUDIT cu argumentele corespunzatoare. De exemplu, pentru a auditati toate evenimentele
de conectare la baza de date
AUDIT CONNECT;
COMMIT;
3. fixati auditarea : Adaugarea informatiei in tabela X
AUDIT INSERT ON X BY ACCESS;
COMMIT;
4. De afisat informatiile despre audit
SELECT os_username, username, userhost, timestamp, action_name, obj_name
FROM dba_audit_trail
WHERE obj_name = 'X';
COMMIT;
5. De oprit procesul de auditare
NOAUDIT INSERT ON X;
COMMIT;
6. De sters informatiile despre auditarea efectuata
DELETE FROM dba_audit_trail WHERE obj_name = 'X';
COMMIT;
Tranzactii 20p
Instalati nivelul de izolare read commited
ALTER SESSION SET ISOLATION_LEVEL = READ COMMITTED;
Verificati setarile de izolare folosind comanda SELECT:
SELECT * FROM v$transaction WHERE addr IN (SELECT xidusn FROM v$session
WHERE sid = sys_context('USERENV', 'SID'));
COMMIT;
Creați utilizatorul U1. Atribuiții privilegii necesare conectării și RESOURCE. 2p
CREATE USER U1 IDENTIFIED BY password;
GRANT CONNECT, RESOURCE TO U1;
COMMIT;
Conectativa cu contul SCOTT. Oferiti dreptul de a insera si selecta datelele din tabela sa
EMP utilizatorulu U1. 2p
GRANT INSERT, SELECT ON scott.emp TO U1;
COMMIT;
Conectativa cu contul U1. Adăugați înregistrati in tabela EMP.2p
INSERT INTO scott.emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) VALUES
(9999, 'John Doe', 'Manager', 7839, TO_DATE('17-MAR-2023', 'DD-MON-YYYY'), 5000,
NULL, 20);
COMMIT;
Numarati rindurile din ambele sesiuni ai tabelei EMP. 2p
SELECT COUNT(*) FROM scott.emp;
Aceasta comanda va returna numarul total de randuri din tabela EMP. Deoarece aceasta
comanda nu tine cont de sesiuni, va returna acelasi rezultat indiferent de sesiunea utilizata.
Confirmati tranzactiele. 2p
Pentru a confirma o tranzactie si a salva modificarile in baza de date, utilizati comanda :
COMMIT;
Ce concluzie puteti face?4p
Tranzactiile reprezinta o modalitate importanta de a gestiona si a mentine integritatea datelor
in baza de date. O tranzactie este o secventa de operatii care trebuie efectuate ca o unitate
atomica, astfel incat fie toate operatiile sa fie finalizate cu succes si modificarile sa fie
salvate, fie nicio operatie sa nu fie efectuata.
Implementarea unei politici de Securitate 30
Fie tabela EXEMPLU
Create table exemplu
(cod number primary key,
Nume varchar2(50),
Facultate varchar2(25),
Media number);
Creati utilizatorii u1 si u2.
Atribuiții privilegii necesare conectării și RESOURCE.
Utilizatorii sa gestioneze tabela in modul urmator:
Utilizatorul u1 are drepturile de a selecta, insera si sterge rindurile tabelei, iar utilizatorul u2
are dreptul sa adauge inregistrari in tabela si sa modifice numele. De folosit pachetul
dbms_rls 20p
-- Crearea utilizatorului u1 si acordarea de privilegii
CREATE USER u1 IDENTIFIED BY password;
GRANT CONNECT, RESOURCE TO u1;
GRANT SELECT, INSERT, DELETE ON exemplu TO u1;
-- Crearea utilizatorului u2 si acordarea de privilegii
CREATE USER u2 IDENTIFIED BY password;
GRANT CONNECT, RESOURCE TO u2;
GRANT INSERT, UPDATE(exemplu) ON exemplu TO u2;
-- Crearea functiei de politica de securitate pentru utilizatorul u2
CREATE OR REPLACE FUNCTION exemplu_policy (p_schema IN VARCHAR2, p_object
IN VARCHAR2)
RETURN VARCHAR2
IS
BEGIN
IF SYS_CONTEXT('USERENV', 'SESSION_USER') = 'U2' THEN
RETURN 'facultate = USERENV(''SESSION_USER'')';
ELSE
RETURN NULL;
END IF;
END;
-- Aplicarea politicii de securitate pe tabela EXEMPLU
BEGIN
DBMS_RLS.ADD_POLICY(
object_schema => 'scott',
object_name => 'exemplu',
policy_name => 'exemplu_policy',
function_schema => 'scott',
policy_function => 'exemplu_policy',
statement_types => 'INSERT, UPDATE',
update_check => TRUE,
enable
=> TRUE);
END;
Download