oracle中用户在过去一个月内的DDL更改



我想知道oracle中特定日期后特定用户的ddl(例如在表中添加列(更改情况?一种策略是查询"user_objects"表。还有别的办法吗?

我还可以知道在特定日期之后做了哪些ddl(例如在表中添加列名(更改吗?

版本-Oracle数据库12c标准版12.1.0.2.0-64位生产

在指定日期当天或之前审核DDL语句。使用DDL触发器捕获DDL语句。使用源代码管理和构建管理系统来跟踪更改的历史记录。或者,如果您碰巧拥有自指定日期以来的每个存档日志,请费力地浏览它们以查找DDL语句(如果指定日期不是最近的,这将不是一个有趣的练习(。

否则,没有。你当然可以在user_objects中查看last_ddl_time。但也有一些DDL语句不会更改(例如,GRANT是一个DDL语句,当依赖对象上有DDL时,PL/SQL对象会自动重新编译,等等(,这些语句会更新last_ddl_time,而不会被大多数人认为是更改。除非您启用审核,否则数据字典将无法告诉您是什么DDL导致last_ddl_time发生更改,因此您将不知道这是否是您认为的更改,是否存在多个更改,或者这些更改是什么。如果你很幸运,你的新列有一个索引,你可以通过查看相关索引的创建日期来推断它是何时添加的。

相关内容

最新更新