问题1:需要记录Db2的SQL语句执行结果时,如何开启审计?
按照以下步骤执行:
#连接数据库
db2 CONNECT TO FILES
#创建审计策略
db2 create AUDIT POLICY FILESPOLICY CATEGORIES AUDIT STATUS BOTH, OBJMAINT STATUS BOTH, CHECKING STATUS BOTH, EXECUTE STATUS BOTH ERROR TYPE NORMAL
解读:
- CREATE AUDIT POLICY FILESPOLICY:这部分创建一个名为
FILESPOLICY
的审计策略。您可以根据实际需要为策略命名。 - CATEGORIES:后面的部分定义该审计策略的类别和审计设置,具体包含以下几个类别:
- AUDIT STATUS BOTH:
BOTH
表示记录所有成功和失败的用户活动。
- OBJMAINT STATUS BOTH:
- 记录对象的维护操作(例如创建、修改、删除表等)
- CHECKING STATUS BOTH:
- 记录完整性检查和验证过程
- EXECUTE STATUS BOTH:
- 记录执行的操作,包括存储过程、用户定义函数等。
- AUDIT STATUS BOTH:
- ERROR TYPE NORMAL:
- 指定了错误类型为正常(NORMAL)。这意味着当发生审计相关的错误时,它将被记录为正常类别的错误,而不是异常或严重错误。
#开启数据库的审计策略
db2 AUDIT DATABASE USING POLICY FILESPOLICY
#显示数据库的审计设置,包括当前激活的审计策略和配置
db2audit describe
DB2 AUDIT SETTINGS:
Audit active: “TRUE “
Log audit events: “BOTH”
Log checking events: “BOTH”
Log object maintenance events: “BOTH”
Log security maintenance events: “BOTH”
Log system administrator events: “BOTH”
Log validate events: “BOTH”
Log context events: “BOTH”
Return SQLCA on audit error: “TRUE “
Audit Data Path: “/data/db2/backup/auditlog/”
Audit Archive Path: “/data/db2/backup/auditarchive/”
AUD0000I Operation succeeded.
强制将审计日志信息写入文件
db2audit flush
问题2:如何取消Db2审计策略?
db2 connect to FILES
#移除已应用的审计策略
db2 AUDIT DATABASE REMOVE POLICY
#删除名为 FILESPOLICY
的审计策略
db2 “DROP AUDIT POLICY FILESPOLICY”