Öncelikle bu işi yaparken hangi objeleri, hangi kolonları ve hangi kriterleri sağlayan statementların audit lenmesi gerektiğini tasarlamamız gerekir. Örneğin;
begin
dbms_fga.add_policy (
object_schema => 'burak',
object_name => 'deneme',
policy_name => 'audit_deneme_maas',
audit_condition => 'department=90',
audit_column => 'maas',
enable => TRUE,
statement_types=> 'select' );
end;
Yukarıdaki blogumuzda yarattığımız policy ile "Burak" schema sındaki "Deneme" tablosuna gelen, koşulunda "maas" kolonu ve "department=90" koşullarının geçtiği "Select" cümleleri için audit aktif hale getirmiş olduk.
Hangi sorgular audite takılır, hangiler takılmaz? ....
SELECT column1,column2 FROM burak.deneme; ---- Policy çalışmaz."Policy çalışmaz" olarak not düştüğümüz örnekler audit devreye girmeyecek olan statementlardır.
SELECT maas FROM burak.deneme; ---- Policy çalışır.
SELECT column2,maas FROM burak.deneme WHERE department = 90; --- Policy çalışır.
SELECT count(*) FROM burak.deneme WHERE department = 90 AND salary > &maas_gir; --- Policy çalışır.
SELECT maas FROM hr.employees; --- Policy çalışır.
SELECT column3 FROM hr.employees WHERE department = 90; --- Policy çalışmaz.
Auditlenen statementlar ise aşağıdaki tablodan sorgulanabilir.
SELECT to_char(timestamp, 'YYMMYYHH24MI') AS timestamp, db_user, policy_name, sql_bind, sql_text
FROM dba_fga_audit_trail;
Bu tarz senaryoları çok daha detaylı şekilde Oracle Database 11g Administration Workshop I Release 2 Eğitimi ve Oracle Database 11g Security DBA Release 2 Eğitimi konuları içerisinde bulabilirsiniz.
Hiç yorum yok:
Yorum Gönder