我有一个Java/Hibernate/Spring应用程序,它启用了oracle的审计(11g非集群),而且似乎配置正确。
但是,有些条目没有写入SYS.AUD$。
这是我的场景:
我有一个事务,它在Oracle上执行8次插入,这是由hibernate的showsql显示的,实际上是写入到数据库中的。
对于给定表,我有一个AUDIT INSERT规则,我希望看到Oracle对给定事务的审计的8个审计条目,但我只记录了4次插入。有时会记录5个条目,有时会记录3个条目。
我已经设法追踪到此行为与hibernate.jdbc.batch_size属性值相关。
在所描述的场景中,该值被设置为10。
但是,如果我将值更改为0,这将禁用jdbc批处理,所有操作都会按预期进行,并且我总是会得到8个插入审计日志。
禁用jdbc批处理对我来说不是一个选项。这是个bug吗?对如何克服这个问题有什么想法吗?
发布于 2013-01-10 04:11:32
我认为这与Direct-Path INSERT有关。如果您使用FGA,(我认为)直接路径插入将不会发生,因此审核始终有效。我认为你将不得不选择一个直接路径插入或审计。
为什么需要jdbc批处理?这是什么类型的应用程序?你有没有在开启和关闭它的情况下进行性能测试?
https://stackoverflow.com/questions/14244965
复制相似问题