sql - OCI:版本 9.2 如何找出谁更新了 Oracle 表
问题描述
有没有办法找出谁更新了 oracle 表?我可以通过执行查询找到日期和更新次数
SELECT * FROM all_tab_modifications
但不知道如何检查用户。
解决方案
您可以打开审核以查看谁更新了表。例如参见这个问题的答案。
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;