Oracle批量插入缺少的审计条目

时间:2013-01-09 19:31:58

标签: oracle insert audit bulk

我有一个Java / Hibernate / Spring应用程序,启用了oracle的审计(11g非集群),并且它似乎已正确配置。

但是,有些条目没有写入SYS.AUD $。

这是我的情景:

我有一个在Oracle上执行8次插入的事务,由hibernate的showsql显示,实际上写入了数据库。

对于给定的表,我有一个AUDIT INSERT RULE BY ACCESS,并且,我希望在给定事务的Oracle AUDIT上看到8个审计条目,但我只记录了4个插入。 有时候会记录5个条目,有时候会记录3个条目。

我设法追查到这种行为与hibernate.jdbc.batch_size属性值有关。

在所描述的场景中,该值设置为10.

如果我将值更改为0但是禁用jdb​​c批处理,一切都按预期工作,我总是得到8个插入审核日志。

我认为它可能是ojdbc驱动程序的一个错误,但即使在我升级到最新版本之后该错误仍然存​​在。

禁用jdb​​c批处理对我来说不是一个选项。这是一个错误吗?有关如何克服这个问题的任何想法?

1 个答案:

答案 0 :(得分:1)

我认为它与Direct-Path INSERT有关。如果您使用FGA,(我认为)将不会发生直接路径INSERT,以便审计始终有效。我认为你必须选择一个 - 直接路径INSERT或审计。

为什么需要jdbc批处理?这是什么类型的应用程序?你是否打开和关闭了性能测试?