Oracle触发器审核 - 如何记录App用户

时间:2015-02-05 18:53:36

标签: oracle11g audit-trail

我正在建立一个网站。

在这个网站上,人们可以操作几个数据库表数据。

每次有人想要进行CUD操作我都想记录它(比如和审核)。

我看到它的方式,我应该使用触发器进行CUD操作,但我无法理解如何记录用户,因为触发器不接受任何输入参数。

注意:我要记录的用户是网络用户。我知道这个用户访问网站时(用户登录<>用户登录到数据库)。

另一个注意:我的表都没有保存创建日期,创建者,更新日期和更新者。当我有审计表时,就不知道为什么他们应该这样做。

1 个答案:

答案 0 :(得分:1)

所以这是网络应用的基本问题。如果你拥有庞大的用户群(超过500个),那么在数据库中配置它们,虽然这很容易实现,但是大多数网络程序员都很遗憾,他们不想处理并且只想要一个数据库的连接用户。你已经在脚下射击了,因为你没有在表中创建created_by,modified_by,created_date,modified_date。要解决这个问题,你真的只有一个选择:

  1. 将列放在表格上,强制用户界面推送"网络"用户名通过。其余的列可以通过一个非常简单的触发器来处理。
  2. 为什么数据库审核对您没有帮助:

    数据库审核功能仅处理数据库中定义为实际用户的用户,对不起就是这样。

    在处理前端系统时,需要注意以下几点。

    您可以编写作为架构所有者执行的SP或程序包,但可以由数据库中定义的任何人运行,并且可以处理定义的架构上的所有INSERT,UPDATE,DELETE操作通过简单地为其他用户提供该组SP的EXECUTE特权。这使DB可以精确控制表的操作方式,您只需要为所有用户提供select权限。

    您可以在SYSTEM模式中编写SP或Package,允许一组人员通过在该SP上授予执行权限来在系统上配置用户。在该SP 定义分配了哪些 ROLES ,因此可以控制所有访问权限。