1. 程式人生 > >Oracle強制審計

Oracle強制審計

Oracle 強制審計

 

 不管你是否開啟資料庫的審計功能,以下這些作業系統會強制記錄:用管理員許可權連線Instance;啟動資料庫;關閉資料庫。

 

強制審計變態的功能:

(1)用SYSDBA或者SYSOPER許可權登入資料庫(conn / as sysdba)

(2)敢startup資料庫

(3)敢shutdown資料庫

 

oracle就給你在$ORACLE_BASE/admin/$ORACLE_SID/adump 目錄中記.aud的檔案,所以,

開了DB功能,會同時將審計日誌記在AUD$表中和作業系統aud檔案中。設定為NONE,仍然會而且毫無其他辦法的將記錄在作業系統aud檔案中。

 

*資料庫的表為:sys.aud$

*作業系統目錄為:$ORACLE_BASE/admin/例項名/adump/

可通過SQL>show parameter audit 查詢到)

SQL> show parameter audit;

 

NAME      TYPE

------------------------------------ ----------------------

VALUE

------------------------------

audit_file_dest      string

/u01/app/oracle/admin/oradb/ad

ump

audit_sys_operations      boolean

FALSE

audit_syslog_level      string

 

audit_trail      string

DB, EXTENDED

 

[[email protected] adump]# cd /u01/app/oracle/admin/oradb/adump/

[[email protected] adump]# du -sh *   --每個.adu檔案4K大小

4.0K oradb_ora_7292_20180524091140445489143795.aud

4.0K oradb_ora_7329_20180524091848245869143795.aud

 

[[email protected] adump]# cat oradb_ora_7292_20180524091140445489143795.aud

Audit file /u01/app/oracle/admin/oradb/adump/oradb_ora_7292_20180524091140445489143795.aud

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1

System name: Linux

Node name: Database1

Release: 2.6.39-400.17.1.el6uek.x86_64

Version: #1 SMP Fri Feb 22 18:16:18 PST 2013

Machine: x86_64

VM name: VMWare Version: 6

Instance name: oradb

Redo thread mounted by this instance: 1

Oracle process number: 31

Unix process pid: 7292, image: [email protected] (TNS V1-V3)

 

Thu May 24 09:11:40 2018 +08:00

LENGTH : '160'

ACTION :[7] 'CONNECT'

DATABASE USER:[1] '/'

PRIVILEGE :[6] 'SYSDBA'

CLIENT USER:[6] 'oracle'

CLIENT TERMINAL:[5] 'pts/1'

STATUS:[1] '0'

DBID:[10] '2725871604'

 

是不是很變態?所以這個目錄長期不清理的話,會積壓大量*.aud檔案長期大量不刪除的話,會影響到作業系統inodes,所以,小夥伴們:如果為DB,記得定期清空aud$表和adump下面的.aud檔案。

 

SQL>truncate table sys.aud$;

如果你不想用DB功能,可以設定關閉

SQL>alter system set audit_trail=none scope=spfile;

注意,需要重啟資料庫

 

SQL>shutdown immediate;

SQL>startup;

 

如果為NONE,記得清空aud檔案或者配置crontab定時任務定時清空aud檔案。注意:不要直接刪除adump目錄,否則,你會sqlplus不了資料庫。

 

 

手動清理.aud檔案:

--進入審計日誌目錄:

cd $ORACLE_BASE/admin/$ORACLE_SID/adump

--刪除3個月前的審計檔案:

find ./ -type f -name "*.aud" -mtime +91|xargs rm -f

--一次清空所有審計檔案

find ./ -type f -name "*.aud"|xargs rm-f

 

定時任務清理aud$

對於通過oracle job來清理aud$請參考我另外一篇部落格:Oracle 審計管理