db2audit 审计 (适用于db2 9.7)

Posted 耀阳居士

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了db2audit 审计 (适用于db2 9.7)相关的知识,希望对你有一定的参考价值。

db2audit 审计 (适用于db2 9.7)


查看审计状态

db2audit describe

审计实例1

将审计功能配置成只记录失败的 AUDIT 和 VALIDATE 事件,
并使用 NORMAL 错误处理选项。为此,发出以下 db2audit 命令:

db2audit configure scope validate status failure errortype normal
db2audit configure scope audit status failure errortype normal

审计实例2

为了将审计功能配置成监视所有事件类型,同时记录成功的和失败的尝试,
并且使用 AUDIT 错误处理选项,可发出以下 db2audit 命令:

db2audit configure scope all status both errortype audit

刷新审计日志到磁盘

db2audit flush

审计日志归档

如果需要提前审计日志,需要将审计日志归档,否则报错:

AUD0036N Extract can not be performed on the active audit log file "/home/db2inst1/sqllib/security/auditdata/db2audit.db.SAMPLE.log.0". 

1、归档实例审计日志(默认)

db2audit archive

2、归档数据库审计日志

db2audit archive database perbank

提取设计日志

1、提取日志到文件

db2audit extract file instance.aud from files db2audit.instance.log.0.20161012143559
db2audit extract file db.aud from files db2audit.db.PERBANK.log.0.20161012133839

2、提取日志到数据库

首先提取日志到定界ascii,然后导入数据库
每种审计类别的日志格式有差异,需要根据根据每种日志类别建立日志表

mkdir output
db2audit extract delasc delimiter ! to output from files db2audit.instance.log.0.20161012165310
db2audit extract delasc delimiter ! to output from files db2audit.db.PERBANK.log.0.20161012165131

创建审计日志表

create table audit_result(
aud_timestamp timestamp,
category varchar(8),
audit_event varchar(32),
event_correlator int,
event_status int,
userid varchar(1024),
authid varchar(128),
application_id varchar(128),
application_name varchar(128),
instance_name varchar(128),
hostname varchar(128)
)

将审计日志写入表

db2 load from audit.del    of del modified by chardel! insert into audit_result nonrecoverable

审计对特定表的任何访问的示例

请考虑这样一家公司,其 EMPLOYEE 表包含非常敏感的信息,并且该公司希望审计对该表中的数据的任何和所有 SQL 访问。
可以使用 EXECUTE 类别来跟踪对表的所有访问;该类别审计 SQL 语句,并可以选择审计在执行时为该语句提供的输入数据值。
跟踪该表上的活动需要执行两个步骤。首先,安全性管理员创建一个指定 EXECUTE 类别的审计策略,然后安全性管理员将该策略与表关联:

CREATE AUDIT POLICY SENSITIVEDATAPOLICY
    CATEGORIES EXECUTE STATUS BOTH ERROR TYPE AUDIT
COMMIT

AUDIT TABLE EMPLOYEE USING POLICY SENSITIVEDATAPOLICY
COMMIT

审计 SYSADM 或 DBADM 执行的任何操作的示例

为了完成安全合格证书,一家公司必须表明能够监视数据库内由拥有系统管理(SYSADM)或数据库管理(DBADM)权限
的那些人执行的任何和所有活动。
要捕获数据库内的所有操作,应审计 EXECUTE 和 SYSADMIN 类别。安全性管理员创建一个审计这两种类别的审计策略。
安全性管理员可以使用 AUDIT 语句将此审计策略与 SYSADM 和 DBADM 权限关联。然后,拥有 SYSADM 或 DBADM 权限
的任何用户将记录任何可审计事件。以下示例显示如何创建这种审计策略并将它与 SYSADM 和 DBADM 权限关联:

CREATE AUDIT POLICY ADMINSPOLICY CATEGORIES EXECUTE STATUS BOTH,
   SYSADMIN STATUS BOTH ERROR TYPE AUDIT
COMMIT
AUDIT SYSADM, DBADM USING POLICY ADMINSPOLICY
COMMIT

审计特定角色执行的任何访问的示例

一家公司允许对其企业数据库进行 Web 应用程序访问。使用 Web 应用程序的确切个人未知。只知道使用的角色,该角
色用于管理数据库权限。该公司希望监视作为该角色成员的任何人的操作,以便检查他们提交给数据库的请求并确保他
们只通过 Web 应用程序访问数据库。
EXECUTE 类别包含跟踪这种情况下的用户活动所需的审计级别。第一步是创建适当的审计策略并将它与 Web 应用程序所
使用的角色关联(在本示例中,角色为 TELLER 和 CLERK):

CREATE AUDIT POLICY WEBAPPPOLICY CATEGORIES EXECUTE WITH DATA 
   STATUS BOTH ERROR TYPE AUDIT
COMMIT
AUDIT ROLE TELLER, ROLE CLERK USING POLICY WEBAPPPOLICY
COMMIT

删除审计策略

AUDIT TABLE T REMOVE POLICY;
DROP AUDIT POLICY SENSITIVEDATAPOLICY;

AUDIT SYSADM, DBADM REMOVE POLICY;
DROP AUDIT POLICY ADMINSPOLICY;

参考:

http://www-01.ibm.com/support/docview.wss?uid=swg21633218
http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0603wasserman/index.html
https://www.ibm.com/support/knowledgecenter/SSEPGG_9.5.0/com.ibm.db2.luw.wn.doc/doc/i0051525.html
http://www.ibm.com/support/knowledgecenter/zh/SSEPGG_9.7.0/com.ibm.db2.luw.admin.sec.doc/doc/c0050525.html

以上是关于db2audit 审计 (适用于db2 9.7)的主要内容,如果未能解决你的问题,请参考以下文章

Docker打DB2 9.7镜像采坑相关

Oracle连接Db2

在db2数据库9.7中,有时候执行一条update或select语句,要耗时很久,几个小

不会为 alter table 触发的审计触发器,但仅适用于 dba 用户

是否有适用于 DB2 v6 的 JDBC Type 4 驱动程序?

DB2 分区表的效率问题及如何建立索引