我想审核对任何db对象的任何修改,并且信息将存储在表中。审计信息必须包含修改数据/对象的用户名(桌面)/调度程序中的IP /日志。
我尝试了Google,但是我得到的数据库对象很少,就像v $ session,dba_audit_objects一样。
对任何人都有任何精心设计的方法吗?
这将在团队中使用,以便跟踪修改数据的来源。
答案 0 :(得分:2)
另一种选择是使用内置审计功能,看看http://oracle-base.com/articles/10g/auditing-10gr2.php的一些例子。
答案 1 :(得分:1)
一种方法是为系统中的每个表创建审计表。然后在每个表的所有列上写入触发器,并使这些触发器在审计表的行中存储旧值和新值。 (删除,更新,插入)。
答案 2 :(得分:1)
您可以使用SYS_Context(' USERENV',#39; PARAM')函数在DDL语句上编写数据库和模式级别触发器,以审核数据库更改。以下是DDL触发器选项:
BEFORE / AFTER ALTER
BEFORE / AFTER ANALYZE
BEFORE / AFTER ASSOCIATE STATISTICS
BEFORE / AFTER AUDIT
BEFORE / AFTER COMMENT
BEFORE / AFTER CREATE
BEFORE / AFTER DDL
BEFORE / AFTER DISASSOCIATE STATISTICS
BEFORE / AFTER DROP
BEFORE / AFTER GRANT
BEFORE / AFTER NOAUDIT
BEFORE / AFTER RENAME
BEFORE / AFTER REVOKE
BEFORE / AFTER TRUNCATE
AFTER SUSPEND