簡體   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