參考文件
|
Oracle
Database Security Guide : Purging Audit Trail Records
目標
|
使用DBMS_AUDIT_MGMT 管理稽核資料的清除。
流程說明
|
1 . 調整redo log sizes 來適應 audit table purge process。
2 . 必須定義清除的類型與時間間隔,類型有 tables、Audit Files、Audit
XMLs。
3 . 必須設定timestamp,清除的工具會刪除這個時間戳記之前的資料 。
4 . 利用 DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL 這個
procedure 清除。
5 . 若要設定排程清除,請操作Step 1. 設定清除的類型。
操作細節
|
Step 1 . 設定清除的類型與清除的時間間隔。
BEGIN
DBMS_AUDIT_MGMT.INIT_CLEANUP(
AUDIT_TRAIL_TYPE =>
DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL,
DEFAULT_CLEANUP_INTERVAL => 2 );
END;
/
--## 查詢是否設定完成,
SQL> select
* from dba_audit_mgmt_config_params
where PARAMETER_NAME = 'DEFAULT CLEAN
UP INTERVAL';
PARAMETER_NAME
PARAMETER_VALUE AUDIT_TRAIL
------------------------------ ------------------------------
------------------------------
DEFAULT CLEAN UP INTERVAL
2
STANDARD AUDIT TRAIL
DEFAULT CLEAN UP INTERVAL
2
FGA AUDIT TRAIL
DEFAULT CLEAN UP INTERVAL
2
OS AUDIT TRAIL
DEFAULT CLEAN UP INTERVAL
2
XML AUDIT TRAIL
--## 清除 init_cleanup 的方式。
SQL> conn /
as sysdba
BEGIN
DBMS_AUDIT_MGMT.DEINIT_CLEANUP(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL);
END;
/
|
選項說明 :
DEFAULT_CLEANUP_INTERVAL
: 清除的時間間隔(小時),若使用Database自帶schedule做排程,則可設定此選項。
AUDIT_TRAIL_TYPE 以下選項如下:
DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD : AUD$.
DBMS_AUDIT_MGMT.AUDIT_TRAIL_FGA_STD : FGA_LOG$.
DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD : 包含AUD$ 與 FGA_LOG$ 兩個表格
DBMS_AUDIT_MGMT.AUDIT_TRAIL_OS: 存放於以下目錄副檔名 .aud 的稽核紀錄檔案。
$ORACLE_BASE/admin/$ORACLE_SID/adump
DBMS_AUDIT_MGMT.AUDIT_TRAIL_XML: 稽核紀錄為 XML 類型的稽核紀錄檔案
DBMS_AUDIT_MGMT.AUDIT_TRAIL_FILES: 包含 .aud 與 XML類型的稽核紀錄檔。
DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL
: 所有的稽核紀錄,包含AUD$、FGA_LOG$ 表格與 .aud與 XML類型的稽核紀錄檔。
Step 2 . 設定TIMESTAMP
設定TIMESTAMP在30天之前,設定此項目只是定義一個日期讓DBMS_AUDIT_MGMT知道要刪除哪個日期之前的資料,若以排程清除的話則每次刪除前都要先執行以下項目定義日期。
SQL> conn /
as sysdba
## 11.2.0.1
SQL> BEGIN
DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(
AUDIT_TRAIL_TYPE =>
DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
LAST_ARCHIVE_TIME =>
sysdate - 30
);
END;
/
--因無AUDIT_TRAIL_ALL類型的設定值,建議將以下四種類型都設定。
AUDIT_TRAIL_AUD_STD
AUDIT_TRAIL_FGA_STD
AUDIT_TRAIL_OS
AUDIT_TRAIL_XML
--查詢所設定的 Timestamp
SQL> select
* from DBA_AUDIT_MGMT_LAST_ARCH_TS;
AUDIT_TRAIL
RAC_INSTANCE LAST_ARCHIVE_TS
-------------------- ------------ ----------------------------------------
STANDARD AUDIT TRAIL
0 13-FEB-14 05.23.13.000000 PM +00:00
FGA AUDIT TRAIL
0 13-FEB-14 05.27.15.000000 PM +00:00
OS AUDIT TRAIL
1 13-FEB-14 05.27.24.000000 PM +08:00
XML AUDIT TRAIL
1 13-FEB-14 05.27.34.000000 PM +08:00
|
Step 3 . 手動刪除
SQL> conn /
as sysdba
SQL> BEGIN
DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL,
USE_LAST_ARCH_TIMESTAMP =>
TRUE );
END;
/
|
AUDIT_TRAIL_TYPE 選項說明
DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD
: AUD$.
DBMS_AUDIT_MGMT.AUDIT_TRAIL_FGA_STD : FGA_LOG$.
DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD : 包含AUD$ 與 FGA_LOG$ 兩個表格
DBMS_AUDIT_MGMT.AUDIT_TRAIL_OS: 存放於以下目錄的副檔名 .aud 的稽核紀錄檔案。
$ORACLE_BASE/admin/$ORACLE_SID/adump
DBMS_AUDIT_MGMT.AUDIT_TRAIL_XML: 稽核紀錄為 XML 類型的稽核紀錄檔案
DBMS_AUDIT_MGMT.AUDIT_TRAIL_FILES: 包含 .aud 與 XML類型的稽核紀錄檔。
DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL
: 所有的稽核紀錄,包含AUD$、FGA_LOG$ 表格與 .aud與 XML類型的稽核紀錄檔。
USE_LAST_ARCH_TIMESTAMP 選項說明 :
TRUE : 刪除DBA_AUDIT_MGMT_LAST_ARCH_TS表格中紀錄的時間之前的Audit records。
FALSE :
刪除所有的Audit recores。
Step 4 . 排程刪除 30 天之前的稽核資料
需操作Step
1 . 設定清除的類型。
# su – oracle$ vi /hoem/oracle/bin/clean_audit_trail.sh
#/bin/ksh
export ORACLE_HOME=/u2/oracle/product/11.2.0/dbhome_1
export
ORACLE_BASE=/u2/oracle
export
ORACLE_SID=topprod
export
NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
export
NLS_DATE_FORMAT='RRRR/MM/DD'
export
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBARY_PATH
export
PATH=$ORACLE_HOME/bin:$HOME:$PATH
sqlplus /nolog
<< eof
conn / as
sysdba
--## Set
TIMESTAMP
BEGIN
DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(
AUDIT_TRAIL_TYPE =>
DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
LAST_ARCHIVE_TIME =>
sysdate - 30
);
END;
/
BEGIN
DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(
AUDIT_TRAIL_TYPE =>
DBMS_AUDIT_MGMT.AUDIT_TRAIL_FGA_STD,
LAST_ARCHIVE_TIME =>
sysdate - 30
);
END;
/
BEGIN
DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(
AUDIT_TRAIL_TYPE =>
DBMS_AUDIT_MGMT.AUDIT_TRAIL_OS,
LAST_ARCHIVE_TIME =>
sysdate - 30
);
END;
/
BEGIN
DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(
AUDIT_TRAIL_TYPE =>
DBMS_AUDIT_MGMT.AUDIT_TRAIL_XML,
LAST_ARCHIVE_TIME =>
sysdate - 30
);
END;
/
--## Clean audit
trail records,
BEGIN
DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(
AUDIT_TRAIL_TYPE =>
DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
USE_LAST_ARCH_TIMESTAMP =>
TRUE );
END;
/
BEGIN
DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_FGA_STD,
USE_LAST_ARCH_TIMESTAMP =>
TRUE );
END;
/
BEGIN
DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_XML,
USE_LAST_ARCH_TIMESTAMP =>
TRUE );
END;
/
BEGIN
DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_OS,
USE_LAST_ARCH_TIMESTAMP =>
TRUE );
END;
/
|
再將/hoem/oracle/bin/clean_audit_trail.sh 加入排程即可
No comments:
Post a Comment