首页 > 解决方案 > OCI:版本 9.2 如何找出谁更新了 Oracle 表

问题描述

有没有办法找出谁更新了 oracle 表?我可以通过执行查询找到日期和更新次数

SELECT * FROM all_tab_modifications 

但不知道如何检查用户。

标签: sqloracleoracle12c

解决方案


您可以打开审核以查看谁更新了表。例如参见这个问题的答案。

AUDIT INSERT, UPDATE, DELETE ON scott.emp BY ACCESS WHENEVER SUCCESSFUL;

然后在视图中找到用户DBA_AUDIT_TRAIL

SELECT os_username, username, obj_name, action_name, timestamp
  FROM DBA_AUDIT_TRAIL 
 WHERE timestamp BETWEEN SYSDATE-7 AND SYSDATE
   AND owner = 'SCOTT' 
   AND obj_name = 'EMP'
 ORDER BY timestamp DESC;

推荐阅读