Oracle 为在任何表中执行的任何DML操作创建plsql触发器

Oracle 为在任何表中执行的任何DML操作创建plsql触发器,oracle,plsql,database-trigger,audit-trail,Oracle,Plsql,Database Trigger,Audit Trail,我有大约500张DB格式的桌子。如果在该表上执行了任何DML操作,则应触发触发器以捕获这些DML活动,并将其加载到审核表中。我不想写500个单独的触发器。实现这一点的任何简单方法?触发器仅用于表,而不是整个数据库。忽略维护不同数据类型、数据使用、各种表的上下文及其使用的复杂性,您所寻找的将是极其复杂的,这是任何RDBMS都没有在数据库级别解决的问题 此链接中有一些关于触发器的信息: 您可以在调用相同过程的每个表上放置触发器。。。但是所有这些复杂性都发挥了作用。要切换所有表的DML语句的所有高级

我有大约500张DB格式的桌子。如果在该表上执行了任何DML操作,则应触发触发器以捕获这些DML活动,并将其加载到审核表中。我不想写500个单独的触发器。实现这一点的任何简单方法?

触发器仅用于表,而不是整个数据库。忽略维护不同数据类型、数据使用、各种表的上下文及其使用的复杂性,您所寻找的将是极其复杂的,这是任何RDBMS都没有在数据库级别解决的问题

此链接中有一些关于触发器的信息:


您可以在调用相同过程的每个表上放置触发器。。。但是所有这些复杂性都发挥了作用。

要切换所有表的DML语句的所有高级审核:

 AUDIT INSERT TABLE, UPDATE TABLE, DELETE TABLE;
我们可以管理的对象取决于我们拥有的权限

审计将把基本信息写入审计跟踪。目的地取决于的值。如果参数设置为
db
,则输出将写入数据库表:我们可以在USER\u AUDIT\u trail中查看我们的跟踪信息,或者(如果我们有权限)在中查看所有信息


审计跟踪是高级别的,这意味着它记录了用户
FOX
更新了
EMP
表,但没有告诉我们哪些记录或实际更改是什么。我们可以通过创建细粒度审计策略来实现细粒度审计。这需要我们做更多的工作,因此我们可能决定不在所有表中启用它

你想审核什么?您需要信息的粒度如何?“触发器仅用于表,而不是整个数据库。”在某种程度上。我们可以定义系统级触发器来触发各种数据库事件。