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 審計管理