我想找到最近添加到现有表的列。 如何在表或数据库(oracle)中查找最近添加的列。 最近,我们的Web应用程序的表和数据库得到了修改,一些表被更改了。
答案 0 :(得分:4)
理想情况下,您应该限制访问您的生产数据库,以及从源代码控制中应用脚本的构建过程,而不是允许人们使用TOAD更改内容。在自由火区进行取证非常困难。
您可以通过查询数据字典找出哪些表已更改:
SQL> select object_name from user_objects t
2 where t.object_type = 'TABLE'
3 and t.last_ddl_time > trunc(sysdate)
4 /
no rows selected
SQL> alter table t23 add col_3 number
2 /
Table altered.
SQL> select object_name from user_objects t
2 where t.object_type = 'TABLE'
3 and t.last_ddl_time > trunc(sysdate)
4 /
OBJECT_NAME
----------------------------------------------------------
T23
SQL>
这不会告诉你改变是什么,或者是谁做的。要获得更好的信息,您需要一个适当的审计跟踪。至少应该启用DDL语句的审核....
SQL> audit ALTER TABLE;
Audit succeeded.
SQL>