2011-01-14 69 views
2

假設我登錄的USERA選擇一個特定的Oracle架構的觀點,我想訪問所有的用戶_ *意見USERB模式,如USER_TABLES,USER_TAB_COLUMNS。我怎樣才能做到這一點?謝謝如何從另一個架構

回答

5

所有USER_ *表都具有帶ALL_ *和DBA_ *前綴的類似物。 USER_TABLES有關於您擁有的所有表格的信息。 ALL_TABLES有關於您有權訪問的所有表的信息。 DBA_TABLES有關於數據庫中所有表的信息。

如果你想看到用戶B的表

SELECT * 
    FROM all_tables 
WHERE owner = 'USERB'; 

SELECT * 
    FROM dba_tables 
WHERE owner = 'USERB'; 

,如果你有用戶B的表的SELECT訪問前將工作信息。如果您的DBA授予您對DBA_TABLES視圖的訪問權限,後者將起作用。通常通過授予SELECT ANY DICTIONARY特權(或先前版本中的SELECT_CATALOG_ROLE)來完成,儘管DBA可以授予對單個DBA_ *視圖的訪問權限。

2
  • USER_%查看給你所擁有的,這就是你的模式。
  • ALL_% views給你什麼訪問權限。

所以你真正應該使用的是ALL_TABLES/etc,並授予對USERB對象的適當訪問權限。

0

假設你有權限,你可以嘗試:

ALTER SESSION SET CURRENT_SCHEMA = USERB;

+1

我有權訪問所需的用戶,但是這種方法對我來說不起作用..它仍然沒有從目標模式返回表 – 2014-07-18 18:39:17

相關問題