小编典典

如何在 Oracle SQL 中列出模式中的所有表?

all

如何在 Oracle SQL 中列出模式中的所有表?


阅读 75

收藏
2022-08-15

共1个答案

小编典典

要查看另一个模式中的所有表,您需要具有以下一项或多项系统权限:

SELECT ANY DICTIONARY
(SELECT | INSERT | UPDATE | DELETE) ANY TABLE

或大锤,DBA 角色。

使用其中任何一个,您可以选择:

SELECT DISTINCT OWNER, OBJECT_NAME 
  FROM DBA_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'
   AND OWNER = '[some other schema]'

如果没有这些系统权限,您只能查看已被授予某种级别访问权限的表,无论是直接访问还是通过角色访问。

SELECT DISTINCT OWNER, OBJECT_NAME 
  FROM ALL_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'
   AND OWNER = '[some other schema]'

最后,您始终可以查询您自己的表的数据字典,因为您对表的权限不能被撤销(从 10g 开始):

SELECT DISTINCT OBJECT_NAME 
  FROM USER_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'
2022-08-15