Oracle查找我创建的所有用户(不包括Oracle帐户)

时间:2019-03-06 10:33:08

标签: oracle

是否可以找到我创建的Oracle中的所有用户帐户? SELECT * FROM ALL_USERS;返回Oracle中的所有用户,但是似乎无法定义帐户的“所有者”(ORC_SYS会很好),因此我可以添加一个子句,例如 'WHERE OWNER !+ 'ORC_SYS'之类的。

预先感谢

KS

3 个答案:

答案 0 :(得分:1)

如果仅在安装时由oracle创建的用户要排除,则可以在user_id上正确进行过滤。通常,这些用户的人数最少:

将35调整为您的安装。

GameObject block = Instantiate (blockPrefab, pos, Quaternion.identity, transform);

如果您运行的是12c或更高版本,则将显示一列“ Oracle_maintained”,它是否是由oracle创建的用户。

Select * from dba_users where user_id > 35;

答案 1 :(得分:0)

如果您有权访问dba_users并且Oracle的版本是12.1及更高版本,则可以按oracle_maintained列进行过滤。

否则,没有“正式”的方式来区分oracle内部用户和您自己的用户。

不过有一些间接方法:

  1. all_users.created列过滤。通常,内部用户是在创建数据库时创建的,因此您的用户将在此日期之后。您可以在v$database.created中找到数据库创建时间。

  2. all_users.user_id进行过滤。如上所述,大多数情况下,内部用户是在创建数据库时创建的,因此它们的user_id较低。某些用户(例如SYSBACKUP,SYSDG)有一些例外。

当内部用户的创建时间比数据库创建的时间晚得多时(例如,重新安装Oracle Option时),两种方式都可能产生错误的结果。

答案 2 :(得分:-1)

您应该尝试:

SELECT * FROM dba_users;