Documente Academic
Documente Profesional
Documente Cultură
DATE
1. Securitatea BD
dr. ing. Enache-Ducoffe Adriana Cristina
(adryanaenache@gmail.com)
• Cunostinte necesare
– Baze de date
• Design, modele relationale, SQL etc.
• Instructiuni SQL: DML, DDL, DCL.
• Tipuri de obiecte BD : index, constrangere etc.
– Notiuni de baza – criptografie
• alg de criptare
• Riscuri de securitate
– Riscurile accesibilitatii datelor
– Amenintari: externe / interne (80%-90%)
– NU exista un SISTEM 100% securizat
• Compromis: cost - risc
– Riscul = Vulnerabilitate + Amenintare
• Vulnerabilitatea – hiba din interiorul sistemului
• Amenintarea – evenimente sau situatii care pot
exploata o vulnerabilitate
• Amenintari Externe
– Utilizatori neautorizati
• software exploit, bypass password, crack
password, social engineering etc.
• Vulnerablitati:
– Parole simple, comunicarea din retea nu e securizata,
sesiuni car nu sunt verificate, recycle bin nu e sters etc.
DISPONILIBILITATE INTEGRITATE
RESPONSABILIZARE
DISPONILIBILITATE INTEGRITATE
• Scopul Securitatii
– Preveni
• prevenire prin protejarea BD : divulgare, distrugere, modificari
neautorizate în mod intenționat/neintenționat
• ex. controlul accesului etc.
– Detecta
• detectarea evenimentului de securitate
• Ex. loguri, auditare, etc.
– Recupera
• oprirea atacului, recuperarea datelor (alterare/distrugere)
• BD operationala, chiar daca atacul s-a realizat cu succes
• Ex. backup + recovery
– 3 Xcomponente = Defence-in-Depth – 1 nivel esuat …
3. Virtual Private DB
• Forma de evaluare
– Laboratoare: 20%
– Proiect : 30%
– Evaluare. 50%
• Forma de evaluare
– Laboratoare: 20%
– Evaluare: 80%
Instanta Oracle
- Memorie
- Procese de Fundal
1 instanta 1 BD
SID = System ID
BD Oracle
- Fisierele (fisierele BD,
control, redolog etc.)
• Procese de fundal
– Database Writer (DBWn) - scrierea blocurilor
de date din bufferele de memorie in fisierele de pe
disc.
– Log Writer (LGWR) – scrie datele din Redo Log
Buffer pe disc ( fisier de Redo Log ).
– Checkpoint (CKPT) –proces de check point
anunta actiunea lui DBWR, actualizeaza fisierele de
date si control ale bazei de date.
• Procese de fundal
– System Monitor (SMON)– activitati de
“curatare” la nivel de sistem:
• instance recovery (roll forward modificarile din red log,
roll back tranzactiile uncomitted, deschide BD), …
– Process Monitor (PMON) – monitorizeaza alte
procese de fundal – “curatarea” dupa un process fail
• ex. Conexiunea de retea esueaza eliberare memorie,
eliberare resurse, rollback etc.
• Baza de date
– Identificare – variabile DB_NAME de la niv SO
• Alte fisiere
– Fisierul de parametrii – parametrii de initializare
(alocarea memoriei Instantei, parametrii de
optimizare, locatie fisierului de control etc.)
• Static (init.ora) / Dinamic (spfile.ora)
– Fisierul de parole – pentru autentificarea
utilizatorilor
– Fisierele RedoLog Arhivate – copiile offline
arhivate ale fisierelor Redo Log (pt. recovery)
– Fisierele de Alert Log – inregistrate anumite
informatii + erori ale BD (ex. Start/stop)
– etc.
dr. ing. Enache Adriana 8
Baza de Date
• Serverul BD
Fisierul de control
Asociere instanta – BD
(activare/dezactivare archivelog)
Fisierul de parametrii
aloca mem. + porneste procesele
(recreare fis ctl, backup + recovery)
• STOP
• Arhitectura Oracle
– Server = Instanta + BD
• Instanta
– Memorie
– Procesele de Fundal
• Baza de date
– fisierele de date, control, redo log
– Structura fizica vs Structura Logica
• Start / Stop
• Obiective
1. Gestiunea utilizatorilor
• Creare / modificare / stergere
• Mecanisme de autentificare
2. Privilegii
• Tipuri de privilegii
• Acordare / revocare
3. Roluri
• Creare / stergere
• Activare / dezactivare
4. Profile
• Utilizatorul
– cont – conectarea la baza de
date
• USER vs SCHEMA
• USER – cont in BD
• SCHEMA = User + Objects
• Gestionare Utilizatori
A. Creare User
B. Modificare User
C. Stergere User
• Alte optiuni:
[ DEFAULT TABLESPACE tablespace ]
– clauza specifica tablespace-ul default (implicit)
[ TEMPORARY TABLESPACE tablespace ]
– clauza specifica tablespace-ul pentru segmente temporare
[ QUOTA int {K | M} ON tablespace ]
– clauza specifica valoarea cotei pe un anumit tablespace in
bytes / KB / MB.
[ QUOTA UNLIMITED ON tablespace ]
– clauza specifica faptul ca nu este fixata o limita superioara
pentru cota pe acel tablespace (bineinteles segmentele
userului nu pot depasi spatiul existent acolo)
• Alte optiuni:
[ PROFILE { profile_name | DEFAULT }]
– limitarile privind resursele pe care le poate consuma
userul + stab. reguli pwd management
– dc. nu se specifica --> va fi asociat un profil implicit.
[ PASSWORD EXPIRE ]
– parola este ‘pre-expirata’ -- userul trebuie sa o schimbe
inainte de a se putea intra in acel cont
– Implicit: not expired
[ ACCOUNT {LOCK|UNLOCK} ]
– cont este blocat (LOCK), --> necesita deblocare inainte
de a fi utilizat.
– Implicit contul - deblocat (UNLOCK) + se poate lucra.
• Stergere User
• Stergere User
• Privilegii
– Tipuri de privilegii
– Acordare / revocare
• Autorizarea
– Determina privilegiile la care utilizatorul are dreptul
– Autorizarea = administrarea privilegiilor
• Privilegiul
– Dreptul de a accesa un anumit obiect
– Dreptul de a executa un anumit tip de statement
• Tipuri de privilegii
– Obiect
– Sistem
dr. ing. Enache Adriana 19
2. Privilegii
• Tipuri de privilegii
– OBIECT = fiec. o.p. permite actiuni la nivel OBJ
• User poate accesa propriile obiecte
– Pt. a accesa obiectele altor useri privilegii obiect
• Acordat:
– Administrator
– User cu GRANT ANY PRIVILEGE
– User cu dreptul explicit de a acorda privilegii pe acel obiect
• TABEL
• TABEL
Procedure, Function,
Object Privilege Table View Package
SELECT X X
INSERT X X
UPDATE X X
DELETE X X
EXECUTE X
DEBUG X X X
ALTER X
INDEX X
REFERENCES X
• Acordare – Grant
• Revocare – Revoke
• DDL
A. USER
– CREATE USER
– ALTER USER
– DROP USER
B. TABLE
– CREATE TABLE – grantee are dreptul de a crea tabele in
propria schema
– CREATE ANY TABLE – grantee are dreptul de a crea
tabele in orice schema
– ALTER ANY TABLE – modificarea tabelelor din orice
schema
– DROP ANY TABLE – stergerea tabelolor din orice
schema
• OBSERVATII
– ANY - arata ca userul are acel privilegiu in orice
schema din BD
– CREATE TABLE, CREATE PROCEDURE – include si
dreptul de a strege acel obiect
– Pt tuncherea unei tabele – avem nevoie de privilegiul
sistem DROP ANY TABLE
• Dictionare din BD
• DBA_SYS_PRIVS – privilegiile sistem acordate la nivelul
BD
– Retinut doar grantee + privilegiul
• SYSTEM_PRIVILEGE_MAP – toate privilegiile
• Acordare – Grant
GRANT { priv_sistem},
{ priv_sistem}…
TO { user | rol | PUBLIC },
{ user | rol | PUBLIC }…
[WITH ADMIN OPTION]
• extinderea posibilitatii de a acorda privilegiul sistem mai departe unor
alti useri / altor roluri
• Revocare – Revoke
REVOKE { priv_sistem},
{ priv_sistem}…
FROM { user | rol | PUBLIC },
{ user | rol | PUBLIC }…
• Privilegii Administrative –
– efectuarea operatiilor de administrare de nivel inalt:
start/stop/backup/recover/etc.
• SYSOPER
– Privilegiul sistem mai putin permisiv decat SYSDBA
– Poate executa urmatoarele instruciuni:
• STARTUP and SHUTDOWN operations
• ALTER DATABASE OPEN/MOUNT/BACKUP
• ALTER DATABASE ARCHIVELOG
• ALTER DATABASE RECOVER
• ….
– T_conectare la BD (as sysoper)= cu privilegiul
SYSOPER = Userul PUBLIC
• are acces la ceea ce userul PUBLIC are dreptul
• ROLURI
– Creare / Modificare / Stergere
– Acordare / Revocare / Activare
• ROLURI
– sunt colectii de privilegii care pot fi
acordate/revocate impreuna unor useri / roluri
• Exemplu
• Acordare ROL
GRANT ROLE role_name
to [user | role_name]
[WITH ADMIN OPTION]
• extinderea rolului – identic cu privilegiile sistem
• Revocare ROL
REVOKE ROLE role_name
from [user | role_name]
• Roluri default
– roluri activate automat dupa autentificarea utilizatorului
• nu mai este necesar sa utilizam SET ROLE pentru activare
• lista de roluri predefinite exista rol cu parola
– Activarea este implicita nu mai are nevoie de parola
• Roluri predefinite
Denumire rol
CONNECT are doar privilegiul CREATE SESSION
RESOURCE dreptul de a crea obiecte in schema (chiar
daca cota = 0)
DBA este cel mai complex rol din BD
trebuie acordat doar administratorilor BD
rolul are
• toate privilegiile sistem
• o parte din privilegiile de administrare
(NU – SYSDBA, SYSOPER)
• Roluri cu parole
• Dictionare din BD
– DBA_ROLES – rolurile definite in BD
– SESSION_ROLES – rolurile active in sesiunea curenta
• Activare / dezactivare roluri
• Parametrii din BD
– MAX_ENABLED_ROLES – numarul maxim de
roluri active permise
• Utilizatori predefiniti in BD
– SYS – rolul DBA (parola: schimba la instalare)
• Owner BD + Dictionarele BD
– SYSTEM – rolul DBA (parola: manager)
• Tabele aditionale cu informatii de administrare BD
• PROFILE
– Creare / asignate / modificare / stregere
– Ce resurse putem limita ?
• PROFILUL
– Un set de limitari de resurse + parametrii pentru parola
• restictioneaza accesul la BD + la resursele instantei
• asociate unui USER
• PROFILUL
– Limitarea resurselor
• activa doar daca parametrul RESOURCE_LIMIT = true
• SQL> show parameter resource_limit;
– Administrarea parolei
• activa permanent
• Limitarea resurselor
– activa -- parametrul RESOURCE_LIMIT = true
• SQL> show parameter resource_limit;
• SQL> alter system set resource_limit=true;
– Ce se limiteaza ?
• Resursele sistemului
• Profilul DEFAULT – resursele sistem = UNLIMITED
• Profilul DEFAULT
• Creare Profil
– SESIUNE***
• sessions_per_user = nr. de sesiun a ajuns la val. MAX + se
incarca deschiderea unei noi sesiuni
– Se afiseaza un mesaj de eroare
• Asignare Profilului
– Poate fi asignat USER
• CREATE USER
– clauza profile
– daca lipseste clauza PROFILE profilul default
• ALTER USER
• Modificarea Profilului
– Sesiunile curente nu sunt afectate de modificari
• la urmatoarea sesiune, modificarile profilului vor avea
efect
– ALTER PROFILE
• Avem nevoie de privilegiul sistem pt a modifica profilul
– ALTER USER
• Avem nevoie de privilegiul sistem ALTER USER pt a asigna
profilul unui USER
• Stergere Profilului
3. Auditarea
dr. ing. Enache-Ducoffe Adriana Cristina
(adryanaenache@gmail.com)
• Obiective
1. Auditarea
• Ce monitorizam ?
• Tipuri de auditari
2. Auditarea standard
• Statement
• Privilegii
• Obiecte
3. Auditarea conturilor privilegiate
4. FGA (Fine-Grained Auditing)
• Auditarea
– Monitorizarea + jurnalizarea actiunilor asupra DB
• ce resurse BD (obiecte: tabele …)
• dc sunt autorizat (privilegii, roluri)
• Extern
– ex. auditarea activitatilor sucessful / unsuccesful (login in BD)
• Tipuri de audit
Tipul de audit Ce este auditat ?
STANDARD -Intructiune / Privilegiu / Obiect
-Informatii despre eveniment:
-Actiunea
-Cand a avut loc
-Userul care a declansat actiunea
-Masina utilizata de user
USERI PRIVILEGIATI -Implicit : conectarea (ex. SYSDBA, SYSOPER)
-Activat: toate instructiunile executate
Fine-Grained Auditing - Nu necesita activare (param audit_trail)
(FGA) - Exindere a auditarii standard
- Instructiuni SQL (INSERT, UPDATE, DELETE) pe baza
continutului
• Activare audit_trail
• Putem colecta informatii despre :
a) INSTRUCTIUNE
b) PRIVILEGIU
c) OBIECT
– Restart Instantei
• Auditul - INSTRUCTIUNE
Optiune de Instructiuni SQL care declaseaza
AUDIT AUDITAREA
SESSION LOGON
USER { CREATE | ALTER | DROP} USER
ROLE { CREATE | ALTER | DROP | SET} ROLE
TABLE { CREATE | ALTER | TRUNCATE } TABLE
SELECT TABLE SELECT any table / view
UPDATE TABLE UPDATE any table / view
PROCEDURE {CREATE | DROP } FUNCTION
{CREATE | DROP } PROCEDURE
CREATE {PACKAGE | PACKAGE BODY}
DROP PACKAGE
SYSTEM AUDIT AUDIT
NOAUDIT
SYSTEM GRANTS GRANT
REVOKE
dr. ing. Enache Adriana 11
2. Auditarea Standard - INSTRUCTIUNE
• BY ACCESS | BY SESSION
– Instructiunile non DDL
» AUDIT delete any BY student BY ACCESS;
1.
3.
2.
4.
• Unix – audit
– Windows
• Auditul poate fi suprascris in mod periodic tb. salvat
manual
– Chiar daca DBA – este de incredere
• Conectarile SYSDBA tb auditate
• De ce ?
– Password cracking
– Brue force attacks
DBMS_FGA.ADD_POLICY(
object_schema VARCHAR2,
object_name VARCHAR2,
policy_name VARCHAR2,
audit_condition VARCHAR2,
audit_column VARCHAR2,
handler_schema VARCHAR2,
handler_module VARCHAR2,
enable BOOLEAN,
statement_types VARCHAR2,
audit_trail BINARY_INTEGER IN DEFAULT,
audit_column_opts BINARY_INTEGER IN DEFAULT);
Parametru Descriere
object_schema Schema de care apartine obiectul auditat
Implicit: NULL (util. schema curenta)
object_name Numele obiectului de auditat
policy_name Numele politicii de securitate (tb sa fie unic)
audit_condition predicatul SQL care stabileste cand se va declansa auditul
Implicit: NULL (valoarea TRUE)
Audit_column Coloana care trebuie verificata
Implicit: NULL (orice coloana selectata)
Handler_schema Schema care contine event_handler
Implicit: NULL (util. schema curenta)
Handler_module Denumirea event handler-ului, incluzand denumirea pachetului
Enable Activeaza politica de securitate daca are valoarea TRUE
Implicit: TRUE
Parametru Descriere
Statement_type Tipurile de instructiuni SQL care vor declansa auditarea
Implicit: SELECT
Audit_trail Destinatia inregistrarilor auditate (DB sau XML)
Precizeaza daca se vor popula coloanele LSQLTEXT + LSQLBIND
Implicit: DB_EXTENDED
Audit_columns_opt Stabileste daca auditarea se va declasa la accesarea
s - oricarei coloane precizata in audit_column
- la accesarea tuturor coloanelor precizata in audit_column
– Politica de securitate
• drept EXECUTE DBMS_FGA
• Exemple
Salary + department_id = 10
department_id = 10
Dictionare BD Descriere
DBA_FGA_AUDIT_TRAIL Toate evenimentele FGA (inregitrarile auditului)
SYS.FGA_LOG$ Inregistrarile Auditului FGA
DBA_AUDIT_POLICIES Toate politicile FGA din BD atasate obiectelor
USER_AUDIT_POLICIES Toate politicile FGA atasate obiectelor la care userul curent
are acces
Instructiunea SQL
• SCOPUL
– Auditarea BD
– Implementarea unor reguli de business, generarea unor valori (ex
calcularea automata a unor sume)
– Triggerii
• USER_TRIGGERS – dictionar din BD ce contine
informatii despre toti triggerii unei tabele
• Tipuri de tiggeri
– Nivelul de executie
» Row-level [FOR EACH ROW]– triger-ul este declansat dupa
fiecare rand (updated, inserted, deleted)
• :old , :new
» Statement-level - triger-ul este declansat dupa fiecare
instructiune
– Timing de executie
» BEFORE
» AFTER
• Auditarea
• Tipuri de Audit
– Standard – { audit_trail | instructiune AUDIT }
• Instructiune
• Obiect
• Privilegiu
– Userilor Privilegiati { SYSDBA, SYSOPER | S.O. }
– Fine-Grained Auditing – DML {pacheul DBMS_FGA}
– DML auditat Trigger
• Securitatea logurilor de audit
• Obiective
1. Virtual Private Databases
• Ce inseamna ?
• De ce avem nevoie ?
2. Implementarea VPD
• View
• Application Context
• Fine-Grained Access Control
• VPD
2. IMPLEMENTAREA VPD
– View
– Fine Grained Access Control
– Application Context
• View
– Obiect al bazei de date care limiteaza accesul utilizatorilor la
date (inregistrari / coloane)
– reprezentare logica a unui / mai multor tabele (nu contine date)
– Ex. User propriile informatii
• View
– Acordarea permisiunilor INSERT + SELECT userilor
> GRANT SELECT, INSERT ON EMPLOYEE_VEIEW1 TO SCOTT
– Adaugarea unei inregistrari in VIEW
> INSERT INTO
DBSEC.EMPLOYEES_VIEW1(EMPLOYEE_ID,
FIRST_NAME, LAST_NAME, EMAIL,
PHONE_NUMBER, HIRE_DATE, JOB_ID, SALARY,
MANAGER_ID, DEPARTMENT_ID, USER_NAME)
VALUES(100, ‘John’, ‘DOE’, ‘SAFYOUNI’,
‘123.234.3456’, SYSDATE, ‘WM_CLK’, 1000,
1000, 10, USER);
• View
– Alternativa INSERT modificat crearea unui TRIGGER
> CREATE OR REPLACE TRIGER
TRG_EMPLOYEES_VER1_BEFORE_INS
BEFORE INSERT
ON EMPLOYEES_VER1
FOR EACH ROW
BEGIN
: NEW.CTL_UPD_USER := USER;
END;
• Observatii
• FGAC
– Cand un user acceseaza Tabel /View protejat de o
politica FGAC
1. Userul acceseaza Tabelul protejat de politica FGAC
2. Serverul invoca functia atasata politicii FGAC, in
functie de contextul aplicatiei / atribute ale sesiunii /
continutul bazei de date
3. Instructiunea SQL este rescrisa in mod dinamic
• adaugarea predicatului in clauza WHERE
4. Instructiunea SQL modificata se executa
• Implementare FGAC
– Definirea FUNCTII – genereza predicatul din clauza WHERE
– Definirea unei POLITICI (DBMS_RLS)
• atasa: Obiectul protejat + Functia de securitate
• restrictionarea la nivel de coloana
– Implicit : restrictioneaza numarul de inegistrari
– Masca : afiseaza toate inregistrarile, dar pentru coloana protejata va
afisa NULL
• DBMS_RLS
– Pachet pentru gestionarea politicilor FGA :
Creare DBMS_RLS.ADD_POLICY
Stergere DBMS_RLS.DROP_POLICY
Activare DBMS_RLS.ENABLE_POLICY
Dezactivare DBMS_RLS.DISABLE_POLICY
• Exemplu
– Student este proprietarul tabelului
Tb_stud(id varchar2(30), nume varchar2(20));
• Exemplu
– Crearea functiei pentru politica FGCA
Create function sec_function
(p_schema varchar2, p_obj varchar2) Identificati
Return varchar2 eroarea din
As Instructiune
user VARCHAR2(100);
Begin
if ( SYS_CONTEXT('userenv', 'ISDBA') ) then
return ''; //Admin can access any data
else
user := SYS_CONTEXT('userenv', 'SESSION_USER');
return ‘nume = ' || user;
// Users can only access their own data
end if;
End;
// USERENV = application context predefinit
• Exemplu
– Student2 are permisiunea SELECT student.tb_stud
SELECT * from student.tb_stud;
Select * from student.tb_stud
WHERE nume = ‘Student2’
INSERT INTO student.tb_stud
OK
VALUES (2, ‘STUDENT2’);
E_id Name
1 Alice
2 Bob
3 John
E_id Name
1 Alice
2 Bob
3 John
• Exercitiu
–Ce se intampla cu userul SYS ?
• Are accesul restrictionat la
inregistrarile din BD?
–NU – este mai “presus” de politicile
aplicate are acces la toate
informatiile din BD
• Application Context
– Container de memorie cu atribute read-only
– Atributele pot fi populate de un pachet
• secure cache = pereche atribut – valoare
– Functionalitate:
• permite accesarea atributelor = grupate intr-un
namespace
– Atributele pot fi : setate + accesate la nivel de sesiune BD
• Atributele
– au valori de tip string
– Utilizate pentru:
» variabile frecvent apelate (ex. evita interogari frecvente in BD)
» Variabile pentru setarea unui context de securitate
• Application Context
– “USERENV” – application context predefinit
(V$SESSION, V$PROCESS)
• descrie sesiunea utilizatorului curent
• Atribute
– Hostname
– IP_ADDRESS
– OS_USER
– DB_NAME
– etc.
• Application Context
–Definire: nume + pachet (seta atributele)
> CREATE CONTEXT hrapp USING hr_context;
–Accesarea atributelor
> SYS_CONTEXT(‘hrapp’, ‘nume_atribut’)
• VPD – Implementare in BD
Step 3. Politica de securitate va
intoarce un predicat in functie Step 0. Definire policy +
de atributele sesiunii sau de functia asociata
continutul bazei de date
Step 5. Instructiunea
Step 1 User trimite o SQL modificata
interogare SQL catre server se executa
• Beneficii VPD ?
– Securitate
• Securitate implementata la nivel de server de BD (nu la niv
aplicatie)
– Simplitate
• Cream 1 VPD cu mai multe optiuni de limitare a accesului la
inregistrarile din baza de date
• Nu trebuie sa definim la nivel de aplicatie / View etc.
– Flexibilitate
• putem implementa o singura politica pentru mai multe
instructiuni SQL ( INSERT, UPDATE, DELETE, SELECT)
• VPD
– rolul de a restrictiona accesul
– View
• nr mare dificil de gestionat
• VPD = FGAC + AC
• Fine Grained Acces Control
– functie + politica
• Application Context
– zona de memorie => atribute read-only
5. Criptarea BD
dr. ing. Enache -Ducoffe Adriana Cristina
(adryanaenache@gmail.com)
• Obiective
1. Criptarea BD
• Date in miscare
• Date in repaus
2. Mecanisme de criptare
• TDE
• DBMS_CRYPTO
• Costurile criptarii
– Criptarea + descriptarea datelor
• performanta - consumatoare de resurse
• disponibilitatea – pierderea cheii
– Managementul cheilor
• Tansmiterea securizata
– Ex. inregsitrarile HR criptate partajate toti angajatii
• Administrarea cheilor
– Schimbarea periodica, personal instruit etc.
• Beneficii TDE
– Criptarea datelor de pe disc
• fisiere de date, redo logs, arhive, fisiere de backup etc.
• elimina accesul direct la datele din fisierele S.O.(root, fisiere
furate de atacator etc.)
– Managementul cheilor este automatizat
• Cheie master la niv BD (stocata in afara bazei de date)
• Cheie la nivel Tabel – criptare coloane
• Cheie la nivel de Tablespace – criptare tablespace
• BD stie sa asocieze tipul cheie – tipul de operatiune
– Nu necesita modificarea aplicatiei
– Putem cripta indecsi (in anumite conditii)
Cheia Master
• Componente TDE
– Module de securitate externe
• Oracle wallet – container protejat cu parola care
poate stoca certificate, chei de criptare etc.
– format PKCS12
– stocat in afara BD
– stoca istoricul cheilor master (cheile vechi pot fi accesate in cazul
in care date vechi sunt accesate)
• Locatie de stocare a wallet-ului este precizata :
sqlnet.ora
• Componente TDE
– Algoritmi (Oracle 11g)
• 3DES168
• AES128
• AES192
• AES256
• Tipuri de date:
• Implementare TDE
1. Generare Cheie Master
Crearea Oracle wallet, daca nu exista deja
Deschide wallet
Crearea / recreare Cheie Master pentru TDE
Re-criptarea Cheilor la nivel de Tabel si a celor la nivel de
TableSpace
• Deschidere wallet
> ALTER SYSTEM SET WALLET OPEN
IDENTIFIED BY “parola”
• DBMS_CRYPTO
– Faciliteaza criptarea datelor la nivel de aplicatie
– Pachet care permite
• criptarea / decriptarea datelor - diversi alg
– DES, 3DES, AES
• generarea de numere aleatoare pentru generarea cheilor
de criptare
• algoritmi de tip hash
– MD5, MD4, SHA-1
• DBMS_CRYPTO – Decriptare
> ecrypted_raw := DBMS_CRYPTO.DECRYPT (
encrypted_raw,
dbms_crypto.ENCRYPT_AES256,
raw_key);
• Criptarea BD
– Date in miscare
– Date in repaus
• TDE
– Tipuri de chei: master, tabel, tablespace
– Transparent : user + aplicatie
• DBMS_CRYPTO
– Pachet criptare / decriptare
– Implementarea nivel aplicatie
6. Backup si Restore BD
dr. ing. Enache -Ducoffe Adriana Cristina
(adryanaenache@gmail.com)
• Obiective
1. Backup
• Cold / hot
• Consistent / Inconsistent
• Full / Incremental (diferential / cumulativ)
2. Recover
• Restore + Recover
• Backup
– Polita de asigurare
– "Cât de mult sunt eu dispus să plătesc şi cât de mult
pierderea este acceptabilă pentru mine? “
– Frecventa de salvare a datelor = cantitatea
de date pe care suntem dispusi sa o pierdem
– Costuri
• durata acceptabila de timp cat sistemul va fi neoperational
• valoarea acceptabilă a pierderilor de date
– Eroare sistem (defectarea unui disc, stergerea permanenta a unor fisiere de pe disc
etc.)
• durata crearii backup-ului
• spatiul de pe disc pe care il ocupa
• Backup
– strategie de backup pentru a minimiza pierderea de date
– se pot pierde date ca rezultat al defectelor hardware sau
software :
• Utilizarea accidentală sau rău intenţionată a instrucţiunii DELETE.
• Utilizarea accidentală sau rău intenţionată a instrucţiunii UPDATE -de
exemplu, nu se foloseşte o clauză WHERE cu instrucţiunea UPDATE
(toate rândurile sunt actualizate, mai degrabă decât un singur rând
dintr-un tabel).
• Stergerea accidentala a unor fisiere din BD.
– Fisierul de control – un mai putem BD – starea mount
– Fisiere de date – numai putem BD – starea open
• Viruşi distructivi.
• Dezastre naturale, cum ar fi incendii, inundaţii, cutremure.
• Furt.
• Tipuri de Backup
– Physical Backup – copierea fisierelor de pe disk
– Logical Backup – copierea obiectelor din BD
• BD oprita / pornita
– Cold Backup – offline
– Hot Backup – online
• Tipul de Recovery
– Consistent – refacerea BD NU necesita etapa recovery
• restore backup este suficient (SCN_datafile = SCN_controlfile)
• Etapa de Recovery nu este necesara
• Offline backup
– Inconsistent – refacerea BD necesita etapa recovery
• Restore de backup nu este suficient (SCN_datafile !=SCN_controlfile)
• Etapa de Recovery aplicarea arhivelor
• Online backup
• Tipuri de Backup
• Ce trebuie sa salvam ?
Fisierul de Fisierele de
CONTROL DATE
IMPLEMENTARE BACKUP
Cold Backup
- BD shutdown
- Copiere fisiere
Cold Backup
- BD shutdown
- Copiere fisiere
Cold Backup
- BD shutdown
- Copiere fisiere
Cold Backup
- Consistent
- Recuperarea BD numai pana
T_crearea_cold Backup
- Recover - incomplet
Hot Backup
- BD running
- BD – modul archivelog
Hot Backup
- BD running
- BD – modul archivelog
Fisiere arhive
Fisiere arhive
Fisiere arhive
Hot Backup
- BD running
- BD – modul archivelog
Fisiere arhive
Fisiere arhive
Hot Backup
Fisiere arhive - Inconsistent
- Restore BD + Aplicare Arhive
- Recover - completa
• RMAN
– Tool Oracle – vine o data cu binarele BD
– Permite operatiuni: backup, restore, recover
– Mai rapid decat user managed
• Backup la nivel de block - doar acele blocks utilizate
• Procesare paralela – crearea channels
– Detecteaza + repara blocurile corupte
– Destinatii multiple backup
• Ex. Disk, tape etc.
– Pt a utiliza RMAN – BD trebuie sa fie CEL PUTIN in
MOUNT STAGE fis de control
• Metodologia Backup
• BACKUP – toata BD
FULL • NU se pot aplica backup-uri
BACKUP incrementale
• RMAN
– FULL Backup
RMAN > BACKUP DATABASE [PLUS ARCHIVELOG];
― ALTER SYSTEM ARCHIVE LOG CURRENT => checkpoint consistent
― Salveaza arhivele
― Salveaza datele
― ALTER SYSTEM ARCHIVE LOG CURRENT
― Salveaza arhivele generate T_backup
– INCREMENTAL Backup
• Level 0 = FULL backup
RMAN > BACKUP INCREMENTAL LEVEL 0 DATABASE;
• RMAN - Incremental
– DIFERENTIAL (parintele = Level 0 / Level 1)
• backup doar modificarile de la ultimul backup incremental
Level 0 / Level 1
• Avantaj:
– Backup: rapid + ocupa putin spatiu
• Dezavantaj:
– Recovery: lent-trebuie aplicate toate backup diferentiale Level 1
• RMAN - Incremental
– DIFERENTIAL (parintele = Level 1)
• RMAN - Incremental
– CUMULATIV (parintele = Level 0)
• Backup doar modificarile de la ultimul backup incremental
Level 0
• Avantaj:
– Recover : rapid ( 1 Level 0 + 1 Level 1)
• Dezavantaj:
– Backup: lent + ocupa mai mult spatiu
• RMAN - Incremental
– CUMULATIV(parintele = Level 0)
• Recuperarea BD
– RESTORE
• identifica si copiaza pe disc fisierele de date din backup si
le face disponibile la nivelul BD
• BD – stare : mounted
– RECOVERY
• Preia copia restored + aplica modificarile care au avut loc
intre timp = aplicare modificarilor din arhive
• Restore + Recovery
• Instance Fail
– Exemple: pana de curent (SO), Shutdown abort etc.
– Recuperarea BD – aproape automat la pornirea
instantei
• ROLLING FORWARD Tranzactii_commited (nu au fost
scrise pe disc)
• ROLLING BACK Tranzactii_uncommited
• Fisiere Redo Log – inregistreaza modificarile din BD
– Retin tranzactiile + starea lor (commited/ uncommited)
– Putem regenera Segmentele Rollback (valorile vechi)
• Alte situatii:
– Sunt afectate fisierele BD: data files, control file,
online redo log files.
– Recovery
• Complet – am adus BD dinainte fail = toate modificarile
• Incomplet - point – in –time recovery
– Cand putem avea RECOVERY incomplet ?
• Pierderea fisiere redo log
• Pierderea unor arhive – arhivele lipsesc / corupte
• Recover
– Restore – data files
– Recovery – aplicare arhive