Arkadaşlar merhaba,
Eğitimlerimin yoğunluğundan dolayı arada sıradada olsa yazmaya çalışıyorum. Buarada Bilginç IT Academy eğitmenlerinin yazılarını yayınlayacağı forum tadında bir siteyi hayata geçirdik ve ortalama 1 ay kadar bir süredir karşılaşılan hatalar, başınıza gelebilecek önemli işler, tuning ile ilgili bilgiler ve/veya genel bilgiler olmak üzere aklımıza ne gelirse, hangi sorunlarla karşılaşırsak, o an ne ile uğraşıyorsak onunla ilgili bir şeyler yazıp yayınladığımız bir forum olmasını ve ziyaret edenlerin birşeyler öğrenip gideceği bir blog olmasını temenni ederek yola çıktık. Evet hadi geçelim bizim siteye bir göz atalım .... :)
oracleegitimi.com
29 Mart 2011
1 Mart 2011
DML Statement Auditlenmesi ve DBMS_FGA
Bu yazımda Insert, Update, Delete ve bunlara ek olarak Select cümlecikleri için specific audit yaratmak üzerine bilgiler paylaşıyor olacağım.
Ö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;
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? ....
Auditlenen statementlar ise aşağıdaki tablodan sorgulanabilir.
Ö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.
Etiketler:
dbms_fga,
dml statement audit,
oracle audit
Kaydol:
Kayıtlar (Atom)