我想查询DBA_USERs以识别sys和非sys用户/方案。但是,我的客户端应用程序无法以SYS用户身份进行连接,因此无法直接查询dba_users。我无法如答案-> gather dba_users information in Oracle database when connected as a user中所述向用户授予特权,因为它是安全缺陷。
进一步调查,我发现all_users包含的数据与dba_users相同,但没有。列(以及较少的详细信息)。
因此,我使用了以下查询-
SELECT distinct owner
FROM all_tables
where owner IN (SELECT username FROM all_users)
and tablespace_name not in ('SYSTEM','SYSAUX')
我能够以普通用户或非系统用户身份运行此查询。
这完成了吗?我想继续在我的生产代码中使用此查询。任何人都可以指出使用此查询(通过使用all_users而不是dba_users)可能会丢失的任何潜在问题或数据。预先感谢。