首页 > 解决方案 > 在 Oracle SQL 中查看用户的所有表修改

问题描述

我正在尝试按用户获取表修改列表,但在视图 ALL_TAB_MODIFICATIONS 中,我只看到按类型修改的表。

有没有办法知道用户进行了多少次修改?相同的视图但添加了 USER 列?

标签: sqloracle

解决方案


这就是 Oracle 的 AUDIT 功能的设计目的。

首先,您必须设置 AUDIT_TRAIL 初始化参数 - https://docs.oracle.com/database/121/REFRN/GUID-BD86F593-B606-4367-9FB6-8DAB2E47E7FA.htm#REFRN10006

然后,您可以使用 AUDIT sql 语句对要审核的任何操作启用审核 - https://docs.oracle.com/database/121/REFRN/GUID-BD86F593-B606-4367-9FB6-8DAB2E47E7FA.htm#REFRN10006

然后,当审计操作发生时,您会在查询 DBA_AUDIT_TRAIL 时看到它们 - https://docs.oracle.com/database/121/REFRN/GUID-A9993FAC-12D3-4725-A37D-938CC32D74CC.htm#REFRN23023

以上是最简单的入门方法。它不包括新的“统一审计”。还有其他 DBA_* 视图给出了 DBA_AUDIT_TRAIL 的过滤版本。但以上将为您提供起点。


推荐阅读