从Oracle DB获取架构抛出错误

时间:2015-09-03 15:45:07

标签: sql oracle select data-dictionary

此查询

select distinct owner from dba_objects

抛出此错误

ORA-00942: table or view does not exist

这有什么意义吗?

3 个答案:

答案 0 :(得分:1)

如果您在DBA_OBJECTS视图中没有select privs,或者您没有SYS.DBA_OBJECTS视图的本地或全局同义词,则会执行此操作。您可以尝试从SYS.DBA_OBJECTS中进行选择。

答案 1 :(得分:1)

您必须使用管理用户(例如syssystem)。如果您无权访问此类用户,则可以使用all_objects视图而非dba_obejcts。任何用户都可以查询它,并且只会获得它有权使用的对象的结果。

答案 2 :(得分:1)

正如其他人所说,这是一个特权问题。

但是,如果用户需要访问权限更高的DBA数据字典对象,则应授予他们SELECT_CATALOG_ROLE角色。不建议使用SYS或SYSTEM,甚至是DBA连接正常操作。