查找在oracle数据库中创建对象的用户

时间:2017-11-20 15:50:57

标签: sql oracle

我需要在oracle数据库中找到创建对象的用户,在这种情况下是一个包​​。我一直在使用此查询:

SELECT OWNER, OBJECT_NAME, OBJECT_TYPE FROM ALL_OBJECTS WHERE OBJECT_TYPE ='PACKAGE';

但是,这只能告诉我所有者。有没有办法找到创建包的用户?

1 个答案:

答案 0 :(得分:1)

有三种不同的东西:对象所属的模式,用于执行CREATE语句的Oracle帐户和执行此命令的真人(OS用户等)。

所有者首先表示。

其中第二件事情含糊不清。通常所有者也是用于创建对象的帐户,但并非总是如此。对象也可以由SYS或具有CREATE ANY系统特权的任何帐户创建。在某些情况下,可以通过授予某些用户的SYS过程来创建对象 - 因此他没有直接创建任何特权。

没有默认使用的内置工具。您应该使用某种DDL审计,取决于RDBMS版本,可能基于DDL触发器,可能是12c的AUDIT命令,也许是别的。

确定真人是一项最复杂的任务。有时它可以从V $ SESSION视图(osuser,终端)中获取,但并非总是如此。