问题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:后面的部分定义该审计策略的类别和审计设置,具体包含以下几个类别:
    1. AUDIT STATUS BOTH
      • BOTH 表示记录所有成功和失败的用户活动。
    2. OBJMAINT STATUS BOTH
      • 记录对象的维护操作(例如创建、修改、删除表等)
    3. CHECKING STATUS BOTH
      • 记录完整性检查和验证过程
    4. EXECUTE 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”