Audit Mekani̇zmasi

404 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
404
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Audit Mekani̇zmasi

  1. 1. 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 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; SQL > AUDIT SELECT ON emi.orders;
  2. 2. Anar Godjaev http://anargodjaev.wordpress.com/ 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 WHERE user_name = 'HR'; SQL >SELECT object_name,object_type,del FROM dba_obj_audit_opts WHERE owner='HR' AND object_name = 'EMPLOYEES'; SQL >select * from DBA_AUDIT_TRAIL ÖRNEK SQL> SHOW PARAMETER AUDIT NAME TYPE VALUE ------------------------------------ ----------- -----------------------------audit_file_dest string C:ORACLEPRODUCT10.2.0ADMIN DB10GADUMP audit_sys_operations boolean FALSE audit_trail string NONE SQL> SQL> ALTER SYSTEM SET audit_trail=db SCOPE=SPFILE; System altered. SQL> SHUTDOWN Database closed. Database dismounted. ORACLE instance shut down. SQL> STARTUP ORACLE instance started. Total System Global Area 289406976 bytes Fixed Size 1248600 bytes Variable Size 71303848 bytes Database Buffers 213909504 bytes Redo Buffers 2945024 bytes Database 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;
  3. 3. Anar Godjaev http://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 COLUMN COLUMN COLUMN username FORMAT A10 owner FORMAT A10 obj_name FORMAT A10 extended_timestamp FORMAT A35 SELECT username, extended_timestamp, owner, obj_name, action_name FROM dba_audit_trail WHERE 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 SQL>audit SQL>audit SQL>audit select,delete,insert,update select,delete,insert,update select,delete,insert,update select,delete,insert,update on on on on user.tab1 user.tab2 user.tab3 user.tab4 by by by by access; access; access; 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.
  4. 4. Anar Godjaev http://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;sorgusukullanılarakgereklibilgileralınabilir.

×