Oracle Veritabanı 12c Unified Audit

Oracle Database 12c Audit mekanizması daha önceki versiyonlarına göre farklı bir model ile oluşturulmuş. Audit işlemleri için kullanılan ayrı ayrı view ve parametreler merkezileştirilerek tek bir audit tablosunda da tutulur hale getirilmiş diyebiliriz.
Oracle veritabanımızı oluşturduğumuzda Mixed Mode Audit özelliği “enable” halde gelirki bu özellik bize istersek veritabanımızı daha önceki sürümlerdeki audit özellikleriyle veya 12c ile gelen Unified Audit mekanizması ile audit yönetimini sağlama imkanı verir. Unified Audit’in enable hale getirilmesi için ORA_SECURECONFIG policy’lerin yaratılmış olması ve Unified Audit parametresinin “TRUE” olarak set edilmesi gerekmektedir. Bu parametrenin değerini v$option view’ini sorgulayarak öğrenebiliriz.

b1.png
Normalde bu parametre “FALSE” olarak set edilmiş halde gelir. Unified Audit için bu parametrenin “TRUE” olarak değiştirilmesi gerekmektedir. Bunun için ilk olarak instance’ı shutdown edip ve listener’ı kapatıp, $ORACLE_HOME/rdbms/lib dizini altındaki binary dosyalarını relink işlemine tabi tutarız.
b2.png
Artık Audit işlemimizi sistem veya object bazında gerçekleştirebiliriz. Ancak bunun için dikkat etmemiz gereken “AUDIT_ADMIN” veya “AUDIT_VIEWER” rollerinden birine sahip olmamız lazım. Admin yetkisi audit tabloları yaratma, AUDSYS şemasını düzenleme gibi yetkilerine sahipken Viewer sadece veriyi görüntüleme iznine sahiptir. Aşağıdaki resimde de görüldüğü gibi şu an SYS kullanıcı ile sisteme giriş yaptığımdan iki role de sahibim.
b3.png
Oracle 12c audit bilgilerini default olarak SGA alanında mesaj queue alanında tutar. Bu alan dolduğunda Oracle yeni gelen bir process olan GEN0′ ı devreye sokar ve bu alan içindeki bilgileri diske yazar.

b4.png
Verilerin hemen diske yazılmadığını görüyoruz. Bu da aklımıza eğer instance’ın çökmesi durumunda bilgilere ne olacağı sorusunu getiriyor. Bunun için ise Oracle audit bilgilerinin hemen diske yazılması için bir parametre sunuyor.
Immediate-Write modunda Audit bilgisi hemen olarak diske yazılır. Ancak bu performans açısında özellikle eğer yoğun bir şekilde audit bilgisi oluşuyor ise bu yöntem tercih edilmez.
b5.png

Queued modu ise data hemen diske yazılmaz. Default moddur.
b6.png


Audit Policy

Audit Policy, bir session veya sorgu için denetleme mekanizması oluşturmaya yarar. Burada belirtilen koşullara göre audit bilgisinin nasıl alınacağı belirlenir. Syntax’ı ise şu şekildedir;
b7.png
Policy’leri sistem bazında ve object bazında olmak üzere iki şekilde oluşturabiliriz. Sistem bazında policy’ler için PRIVILEGE, ACTION, ROLE opsiyonları kullanılabilir. Örnek vermek gerekirse;

b9.png
Unified Audit mekanızmasını kullanıyor isek bilmemiz gereken bazı tablolar var. Bunlardan birincisi policy’lerimizi görüntüleyeceğimiz AUDIT_UNIFIED_POLICIES tablosudur. Daha önce oluşturduğumuz policy’i görmek istersek;

b10.png
Ancak şu an için policy enable yani kullanılabilir durumda değil.Enable hale getirebilmek için aşağıdaki komutu çalıştırırız.

b11.png
Diğer bir tablomuz ise AUDSYS şeması altındaki audit kayıtlarımızın tutulduğu UNIFIED_AUDIT_TRAIL tablosudur. Eğer HR kullanıcı ile “CREATE TABLE” sistem yetkisini kullanırsak bu tabloda kaydını artık görebiliriz.
b12.png
Eğer ilk sorgumuzda kayıtları göremiyorsak “flush” işlemi uygulayarak olan kayıtları diske yazdırabiliriz.

b13.png
Şimdi aynı tabloyu tekrar sorgularsak yapılan işlemi görebiliriz.

b14.png
Audit Policy’i drop etmek için ilk olarak eğer enable durumda ise disable edilir ve ardından drop edilir.

b15.png

Yorum bırakın