繁体   English   中英

如何从另一个架构中选择特定于Oracle架构的视图

[英]how to select a Oracle schema-specific view from another schema

假设我以USERA身份登录,我想访问USERB模式的所有user_ *视图,例如user_tables,user_tab_columns。 我怎样才能做到这一点? 谢谢

所有USER_ *表都有类似的前缀ALL_ *和DBA_ *。 USER_TABLES具有有关您拥有的所有表的信息。 ALL_TABLES具有有关您有权访问的所有表的信息。 DBA_TABLES具有有关数据库中所有表的信息。

如果您想查看有关UserB表的信息

SELECT *
  FROM all_tables
 WHERE owner = 'USERB';

要么

SELECT *
  FROM dba_tables
 WHERE owner = 'USERB';

如果您对用户B的表具有SELECT访问权限,则前者将起作用。 如果您的DBA授予您访问DBA_TABLES视图的权限,则后者将起作用。 尽管DBA可以授予对单个DBA_ *视图的访问权限,但这通常是通过授予SELECT ANY DICTIONARY特权(或先前版本中的SELECT_CATALOG_ROLE)来完成的。

  • USER_%视图提供您所拥有的内容,即架构内部的内容。
  • ALL_%视图为您提供了访问权限。

因此,您真正应该使用的是ALL_TABLES / etc,并授予对USERB对象的适当访问权限。

假设您具有权限,则可以尝试:

ALTER SESSION SET CURRENT_SCHEMA = USERB;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM