db2audit審計發生在實例級,這意味着一旦啓動審計功能,它就會審計那個實例中全部數據庫的活動。審計功能必須單獨啓動和中止。數據庫
DB2 UDB 架構中的 DB2 審計功能原理圖:安全
審計選項說明:架構
Log audit events: "FAILURE" ide |
當審計設置被更改或者審計日誌被訪問時生成記錄函數 |
Log checking events: "FAILURE" ui |
在對訪問或操做 DB2 對象或函數的嘗試進行權限檢查時生成記錄spa |
Log object maintenance events: "FAILURE" 日誌 |
在建立或刪除數據對象時生成記錄orm |
Log security maintenance events: "FAILURE" 對象 |
在授予或者撤銷對象或數據庫特權或 DBADM 權限時生成記錄 |
Log system administrator events: "FAILURE" |
當執行須要 SYSADM、SYSMAINT 或 SYSCTRL 權限的操做時生成記錄 |
Log validate events: "FAILURE" |
當認證用戶或檢索系統安全性信息時生成記錄 |
Log context events: "NONE" |
執行數據庫操做時,生成記錄以便顯示操做上下文 |
db2的審計分爲實例界別和數據庫級別,在網上查找審計時,一般看到的都只是實例級別的審計介紹,下面分別是兩種類型的配置舉例。
經過db2audit describe查看
SL1:/db2audit_arch # db2audit describe
DB2 AUDIT SETTINGS:
Audit active: "TRUE "
Log audit events: "NONE"
Log checking events: "FAILURE"
Log object maintenance events: "FAILURE"
Log security maintenance events: "FAILURE"
Log system administrator events: "FAILURE"
Log validate events: "FAILURE"
Log context events: "NONE"
Return SQLCA on audit error: "FALSE "
Audit Data Path: "/db2audit_arch/"
Audit Archive Path: "/db2audit_arch/"
AUD0000I Operation succeeded.
經過查看syscat.auditpolicies表查看
審計選項 |
值 |
AUDITPOLICYNAME |
SAMPLEPOLICY |
AUDITPOLICYID |
100 |
CREATE_TIME |
2016-03-03-11.08.34.117134 |
ALTER_TIME |
2016-03-15-10.35.45.099762 |
AUDITSTATUS |
N |
CONTEXTSTATUS |
S |
VALIDATESTATUS |
N |
CHECKINGSTATUS |
N |
SECMAINTSTATUS |
N |
OBJMAINTSTATUS |
N |
SYSADMINSTATUS |
N |
EXECUTESTATUS |
N |
EXECUTEWITHDATA |
N |
ERRORTYPE |
A |
REMARKS |
- |
數據庫產生的審計日誌,直接寫入到/db2audit_arch目錄下。當該目錄使用率滿時,將沒法記錄審計日誌,數據庫將沒法進行正常使用。
/dev/aduitarch 40.00 34.51 14% 22 1% /db2audit_arch
一般咱們能夠編寫定時任務腳本,對審計日誌進行管理。好比,歸檔、抽取、入庫等。定時任務的時間,能夠根據實際環境進行配置。
50 * * * * /db2archive/db2inst1/SAMPLE/NODE0000/_db2audit/mkaudit_SQL.sh &
定時腳本調起時,大體能夠概括以下步驟:
A. 將審計flush到文件;
B. 將數據庫級審計日誌進行歸檔;
C. 將審計日誌從二進制轉換爲可閱讀格式;
D. 將審計記錄進行入庫保存或者將審計文件上傳到審計部門;
E. 按期清理審計文件;
F. 按期清理庫中的審計記錄。
審計日誌的保留週期,一般在1~3年。根據要求部署按期清理腳本便可。
本地審計原文件,存放在/db2audit_arch。
/dev/aduitarch 40.00 34.51 14% 22 1% /db2audit_arch
SL1:/db2audit_arch # ls -rlt
total 11510256
-rw------- 1 db2inst1 db2grp 53852001 Jun 27 17:50 db2audit.db.SAMPLE.log.0.20170627175001
-rw------- 1 db2inst1 db2grp 71379624 Jun 27 19:50 db2audit.db.SAMPLE.log.0.20170627195001
-rw------- 1 db2inst1 db2grp 96795801 Jun 27 23:50 db2audit.db.SAMPLE.log.0.20170627235001
-rw------- 1 db2inst1 db2grp 4369101512 Jun 28 03:50 db2audit.db.SAMPLE.log.0.20170628035001
-rw------- 1 db2inst1 db2grp 82103216 Jun 28 07:50 db2audit.db.SAMPLE.log.0.20170628075000
-rw------- 1 db2inst1 db2grp 141386477 Jun 28 11:50 db2audit.db.SAMPLE.log.0.20170628115001
-rw------- 1 db2inst1 db2grp 611120029 Jun 28 15:45 db2audit.instance.log.0
-rw------- 1 db2inst1 db2grp 197411690 Jun 28 15:50 db2audit.db.SAMPLE.log.0.20170628155001
-rw------- 1 db2inst1 db2grp 4637688 Jun 28 15:54 db2audit.db.SAMPLE.log.0
轉換格式後的文件,保存在/db2archive/db2inst1/SAMPLE/NODE0000/_db2audit
SL1:/db2audit_arch # ls -rlt
total 11510256
drwxr-xr-x 2 db2inst1 db2grp 256 Mar 15 2016 lost+found
-rw-rw-rw- 1 db2inst1 db2grp 0 Jun 21 2016 validate.del
-rw-rw-rw- 1 db2inst1 db2grp 0 Jun 21 2016 sysadmin.del
-rw-rw-rw- 1 db2inst1 db2grp 0 Jun 21 2016 secmaint.del
-rw-rw-rw- 1 db2inst1 db2grp 0 Jun 21 2016 objmaint.del
-rw-rw-rw- 1 db2inst1 db2grp 0 Jun 21 2016 execute.del
-rw-rw-rw- 1 db2inst1 db2grp 0 Jun 21 2016 checking.del
-rw-rw-rw- 1 db2inst1 db2grp 0 Jun 21 2016 audit.del
-rw-rw-rw- 1 db2inst1 db2grp 186838785 Jun 02 17:28 context.del
-rw-rw-rw- 1 db2inst1 db2grp 78538009 Jun 02 17:28 auditlobs
審計開啓/關閉
db2audit start/stop
確認開關是否開啓
db2inst1@s1l:~/audit_dump> db2audit describe|grep -i 'Audit active'
Audit active: "TRUE "
實例級別審計,經過db2audit,修改相應選項,便可開啓對應的審計。
db2audit configure scope context status SUCCESS errortype normal
庫級別審計經過db2 audit database using開啓。
db2 audit database using policy auditdb
在開啓審計後,必定要對審計目錄使用率進行監控,不然在撐爆後,影響數據庫訪問。
歸檔實例級別審計使用「db2audit archive」,庫級別審計使用「db2audit archive database dbname。