2017-03-01 104 views
0

我试图审计一个特定的用户,并创建了一个我分配给用户的审计策略。然后,我将其归档并提取审计数据。DB2审计 - 加载到审计表

到目前为止这么好。

然后,我使用db2audit.dll来创建所需的表。

TABNAME TABSCHEMA 
-------- --------- 
AUDIT AUDIT 
CHECKING AUDIT 
CONTEXT AUDIT 
EXECUTE AUDIT 
OBJMAINT AUDIT 
SECMAINT AUDIT 
SYSADMIN AUDIT 
VALIDATE AUDIT 

现在我有一个问题加载数据到表中。

这是我使用的语句(从知识中心):

DB2

当我执行这个 “从改性DELPRIORITYCHAR LOBSINFILE INSERT INTO AUDIT.EXECUTE DEL的execute.del LOAD”声明没有任何反应

的diaglog只能说明,直到我CRTL + C的声明如下:

2017-03-01-18.17.10.369493+060 I4839757A617   LEVEL: Warning 
PID  : 6619308    TID : 46267   PROC : db2sysc 0 
INSTANCE: db2xxx    NODE : 000   DB : XXX 
APPHDL : 0-61914    APPID: *LOCAL.db2xxx.170301163935 
AUTHID : DB2XXX    HOSTNAME: axxxxxxxx 
EDUID : 46267    EDUNAME: db2agent (XXX) 0 
FUNCTION: DB2 UDB, database utilities, sqluvtld_route_in, probe:924 
DATA #1 : LOADID, PD_TYPE_LOADID, 50 bytes 
LOADID: 46267.2017-03-01-18.17.10.369444.0 (-1;-1) 
DATA #2 : String, 55 bytes 
Starting LOAD operation (S) (1) (I) [AUDIT .EXECUTE]. 

我真的不知道我在这里失踪。

感谢,

米尔科

+0

LOAD在完成之前不会报告错误,并且每个错误都会导致放缓 - 如果存在很多错误,您可以体验到您所看到的行为。我建议在你的LOAD语句中加入'warningcount 50'(如果有50个警告强制LOAD失败)。 –

+0

没有任何警告,但感谢这个提示......它让我想到了解决方案。 – nubbeldupp

回答

0

我发现自己...

由于我在SAP环境工作没有8K表空间。所有表空间和缓冲池都是16K。

在查看ddl文件后,我在评论部分找到了该文件。

-- -> assumes an 8K tablespace is available for use 

(我不得不承认我没有正确读取知识中心,有一个短句提要求的8K表空间):)

创建8K缓冲池,8K表空间和滴/后创建LOAD工作得很好的表。

+0

这并不真正与你在你的问题中描述的东西。 AUDIT.EXECUTE是否存在。如果它不存在(即因为'create table'失败),当发出LOAD命令时,你会收到一个错误('SQL3304N表不存在.')。 –

+0

即使没有8K表空间,CREATE TABLE也不会失败,脚本(sqllib/misc/db2audit.ddl)也可以正常工作。 – nubbeldupp