我需要除默认oracle用户之外的所有用户的列表.
Select Username from all_users;
Run Code Online (Sandbox Code Playgroud)
此查询将为我提供结果,但我只想手动创建用户.由于我的数据库中有50多个用户,因此无法遍历每个用户.
我试过了 :
http://www.orafaq.com/wiki/List_of_default_database_users从这里我得到了所有默认用户的列表,所以我是否需要使用上面查询中的where子句跳过所有用户
Select Username from all_users where Username NOT IN ('List All Default
Users Given By Oracle');
Run Code Online (Sandbox Code Playgroud)
或者有任何快速的方法吗?
-Nagendra
从 Oracle 12c r1 开始,您可以在 ALL_USERS 和 DBA_USERS 视图中使用新的 ORACLE_MAINTAINED 列
https://docs.oracle.com/database/121/REFRN/GUID-DDD25C8F-7EC9-46BC-ABEA-529C64FA09E2.htm
例如
select * from dba_tables where owner in
(select username from all_users where oracle_maintained = 'N')
Run Code Online (Sandbox Code Playgroud)
应该为您提供非内部 Oracle 用户拥有的表的列表。
根据 Oracle 数据库 12c,这些是要避免的默认用户列表,并获取其他所有用户的详细信息。
请通过以下链接验证以了解更多信息:https : //docs.oracle.com/database/121/NTDBI/startrdb.htm#NTDBI2845
select username from dba_users where username not in ('ANONYMOUS'
,'APEX_040200'
,'APEX_PUBLIC_USER'
,'APPQOSSYS'
,'AUDSYS'
,'BI'
,'CTXSYS'
,'DBSNMP'
,'DIP'
,'DVF'
,'DVSYS'
,'EXFSYS'
,'FLOWS_FILES'
,'GSMADMIN_INTERNAL'
,'GSMCATUSER'
,'GSMUSER'
,'HR'
,'IX'
,'LBACSYS'
,'MDDATA'
,'MDSYS'
,'OE'
,'ORACLE_OCM'
,'ORDDATA'
,'ORDPLUGINS'
,'ORDSYS'
,'OUTLN'
,'PM'
,'SCOTT'
,'SH'
,'SI_INFORMTN_SCHEMA'
,'SPATIAL_CSW_ADMIN_USR'
,'SPATIAL_WFS_ADMIN_USR'
,'SYS'
,'SYSBACKUP'
,'SYSDG'
,'SYSKM'
,'SYSTEM'
,'WMSYS'
,'XDB'
,'SYSMAN'
,'RMAN'
,'RMAN_BACKUP'
,'OWBSYS'
,'OWBSYS_AUDIT'
,'APEX_030200'
,'MGMT_VIEW'
,'OJVMSYS');
Run Code Online (Sandbox Code Playgroud)
您可以对创建日期执行某些操作,很可能系统用户在设置数据库时都已创建,其他用户可能在接下来的几天/周/月内创建。因此,显示在最短创建日期之后创建的所有用户的查询可能会对您有所帮助。
SELECT username
FROM dba_users
WHERE TRUNC(created) > (SELECT MIN(TRUNC(created))
FROM dba_users);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14878 次 |
| 最近记录: |