我正在为执行插入/更新/删除记录的用户ID登录的Web应用程序执行审计跟踪。
插入/更新触发器没有问题。但是,对于删除触发器,数据库不会知道执行删除的“用户ID”。
我正在使用oracle数据库和带有连接池的jdbc。
如何将“用户ID”传递给删除触发器?
答案 0 :(得分:2)
看看Audit4j。它支持对应用程序审计的开箱即用支持。
答案 1 :(得分:1)
您使用的是JPA吗?如果是这样,您使用的是EclipseLink吗?如果是这样,可以不用触发器完成吗?
如果您对所有三个答案的回答都是肯定的,那么我能为您找到答案。看看EclipseLink's History table feature 。我过去曾成功地使用它来实现审计跟踪。
否则,请通过拥有“状态”列来考虑“软删除”。您可以简单地将行状态设置为禁用,而不是从数据库中物理删除行。在您的选择查询中,只需添加“和状态!=禁用。”