5
Anar Godjaev http://anargodjaev.wordpress.com/ AUDIT MEKANİZMASI Kullanıcının yaptığı haraketleri izlemek için kullanılan yapıdır. Audit dosyaları genellikle $ORACLE_HOME/rdbms/audit klasöründe muhafaza edilmektedirler. Audit işlemini aktif edebilmek için AUDIT_TRAIL parametresinin aktif olması gerekmektedir. SQL > alter system set audit_trail=db scope=spfile; //İzlemeleri Database de tutar (SYS.AUD$) SQL > alter system set audit_trail=os scope=spfile; //izlemeleri işletim sistemi pathinde tutar SQL > alter system set audit_trail=none scope=spfile;//izlemeler devre dışı Eğer Sys user’ının aktivitilerinide izlemek istiyorsak , Audit_sys_operations parametresini TRUE yapmamız gerekmektedir. Çeşitli Audit operasyonları aşağıdaki gibidir. SQL > CONNECT sys/password AS SYSDBA

Audit Mekani̇zmasi

Embed Size (px)

Citation preview

Page 1: Audit Mekani̇zmasi

Anar Godjaevhttp://anargodjaev.wordpress.com/

AUDIT MEKANİZMASI

Kullanıcının yaptığı haraketleri izlemek için kullanılan yapıdır.

Audit dosyaları genellikle $ORACLE_HOME/rdbms/audit klasöründe muhafaza edilmektedirler.

Audit işlemini aktif edebilmek için AUDIT_TRAIL parametresinin aktif olması gerekmektedir.

SQL > alter system set audit_trail=db scope=spfile; //İzlemeleri Database de tutar (SYS.AUD$)

SQL > alter system set audit_trail=os scope=spfile; //izlemeleri işletim sistemi pathinde tutar

SQL > alter system set audit_trail=none scope=spfile;//izlemeler devre dışı

Eğer Sys user’ının aktivitilerinide izlemek istiyorsak ,

Audit_sys_operations parametresini TRUE yapmamız gerekmektedir.

Çeşitli Audit operasyonları aşağıdaki gibidir.

SQL > CONNECT sys/password AS SYSDBA

SQL > AUDIT ALL BY fireid BY ACCESS;SQL > AUDIT SELECT TABLE, UPDATE TABLE, INSERT TABLE, DELETE TABLE BY fireid BY ACCESS;SQL > AUDIT EXECUTE PROCEDURE BY fireid BY ACCESS;

SQL > AUDIT create any trigger;

Page 2: Audit Mekani̇zmasi

Anar Godjaevhttp://anargodjaev.wordpress.com/

SQL > AUDIT SELECT ON emi.orders;

Yine aynı şekilde çeşitli auditler hakkında sorgu yapabilmek istersek,

SQL > SELECT audit_option, success,failure FROM dba_stmt_audit_opts WHERE user_name = 'HR';

SQL > SELECT privilege,success,failure FROM dba_priv_audit_opts WHEREuser_name = 'HR';

SQL > SELECT object_name,object_type,del FROM dba_obj_audit_opts WHEREowner='HR' AND object_name = 'EMPLOYEES';

SQL > select * from DBA_AUDIT_TRAIL

ÖRNEK

SQL> SHOW PARAMETER AUDIT

NAME TYPE VALUE------------------------------------ ----------- ------------------------------audit_file_dest string C:\ORACLE\PRODUCT\10.2.0\ADMIN \DB10G\ADUMPaudit_sys_operations boolean FALSEaudit_trail string NONESQL>

SQL> ALTER SYSTEM SET audit_trail=db SCOPE=SPFILE;

System altered.

SQL> SHUTDOWNDatabase closed.Database dismounted.ORACLE instance shut down.SQL> STARTUPORACLE instance started.

Total System Global Area 289406976 bytesFixed Size 1248600 bytesVariable Size 71303848 bytesDatabase Buffers 213909504 bytesRedo Buffers 2945024 bytesDatabase mounted.Database opened.SQL>

CONNECT sys/password AS SYSDBA

CREATE USER patpat IDENTIFIED BY patpat DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA UNLIMITED ON users;

Page 3: Audit Mekani̇zmasi

Anar Godjaevhttp://anargodjaev.wordpress.com/

GRANT connect TO patpat;GRANT create table, create procedure TO patpat;

AUDIT ALL BY patpat BY ACCESS;AUDIT SELECT TABLE, UPDATE TABLE, INSERT TABLE, DELETE TABLE BY patpat BY ACCESS;AUDIT EXECUTE PROCEDURE BY patpat BY ACCESS;

CONN patpat/patpat

CREATE TABLE pat_tab ( id NUMBER);

INSERT INTO pat_tab (id) VALUES (1);UPDATE pat_tab SET id = 2;SELECT * FROM pat_tab;DELETE FROM pat_tab;

DROP TABLE pat_tab;

CONNECT sys/password AS SYSDBA

COLUMN username FORMAT A10COLUMN owner FORMAT A10COLUMN obj_name FORMAT A10COLUMN extended_timestamp FORMAT A35

SELECT username, extended_timestamp, owner, obj_name, action_nameFROM dba_audit_trailWHERE owner = patpat’ORDER BY timestamp;

Bunun dışında sadece specific tablolar üzerinden yapılan haraketleride izlemek gerekebilir.Bunun için öncelikle yapılması gereken hangi tablolar üzerinde audit olacağını belirlemek gerekir.

Örneğin aşağıdaki komutla 4 adet tablo için audit mekanizmasını açıyoruz.

SQL>audit select,delete,insert,update on user.tab1 by access;SQL>audit select,delete,insert,update on user.tab2 by access;SQL>audit select,delete,insert,update on user.tab3 by access;SQL>audit select,delete,insert,update on user.tab4 by access;

Artık bu işlemden sonra bir kişi bu tablolardan biri üzerinde beliritilen select,update,insert,delete komutlarından birini çalıştırırsa otomatik olarak bir log ile audit edilecektir.

Bunuda ,

SQL > select * from DBA_AUDIT_TRAIL;kullanarak görebilirsiniz.

Page 4: Audit Mekani̇zmasi

Anar Godjaevhttp://anargodjaev.wordpress.com/

Yalnız bazen DBA_AUDIT_TRAIL içinde bazı yapılan sql sorgusunu görmek mümkün olmamaktadır.O yüzden FGA policy dediğimiz kavram ile bu SQL leri istersek tablonun tamamı için yada sadece belirili bir kolona özel olarak sorgulamak mümkündür.Ama yukarıdaki örnekte olan 4 tablo içinde bunu yapmak gerekir.

Örnek olarak 1 tablo için yaparsak,

SQL > BEGIN DBMS_FGA.add_policy( object_schema => 'USER', object_name => 'TAB1, policy_name => 'BIR_ISIM_GIR', statement_types => 'SELECT,INSERT,UPDATE,DELETE');END;/

Daha sonra tablo üzerinde select,insert,delete,update işlemlerinden biri yapıldığında otomatik olarak loglanacaktır.

Daha sonra ,

SQL > SELECT *FROM dba_fga_audit_trail; sorgusu kullanılarak gerekli bilgiler alınabilir.