[英]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.