2011-05-13 69 views
1

我在OE模式下有一個表訂單。我無法從scott或hr模式訪問此表。但是當我嘗試從這兩個模式中的oe.orders中選擇時,我會得到如下的不同消息。爲什麼這樣呢?ORACLE表上的權限

SQL> connect scott/test 
Connected. 
SQL> select count(*) from oe.orders; 
select count(*) from oe.orders 
         * 
ERROR at line 1: 
ORA-01031: insufficient privileges 


SQL> connect hr/test 
Connected. 
SQL> select count(*) from oe.orders; 
select count(*) from oe.orders 
         * 
ERROR at line 1: 
ORA-00942: table or view does not exist 
+0

您是否定義了任何表同義詞? – 2011-05-13 15:45:52

+0

沒有同義詞的表訂單 - 我檢查了dba_synonyms表 – josephj1989 2011-05-13 15:48:32

+0

每個對象的類型是什麼?有了views,如果你不能訪問基礎表,它可能會拋出一個不同的錯誤。 – 2011-05-13 16:57:40

回答

1

SCOTT可能有INSERT,UPDATE,和/或在桌子上OE.ORDERS DELETE權限,但不能選擇,而HR顯然沒有授權在所有的OE.ORDERS特權。 SCOTT也可以有INSERT ANY TABLE,DELETE ANY TABLE和/或UPDATE ANY TABLE。

請務必查看dba_sys_privs以獲得授予的系統權限,這些權限可能會使您知道某個對象(如表格)存在的能力,但不授予從中進行選擇的權利。例如,CREATE ANY INDEX或ANALYZE ANY權限會導致我沒有DML權限的表的權限不足。將授予SCOTT的權限與授予HR的權限進行比較。

+0

沒有scott沒有權限或角色 - 我檢查了dba_tab_privs和dba_role_privs。我對此感到困惑 – josephj1989 2011-05-13 18:47:38

+0

系統權限怎麼樣,比如我列出的權限?那些不會出現在你引用的任何dba_視圖中,但是確實賦予了知道obect存在但權限不足的能力。 – DCookie 2011-05-13 22:19:36

+0

查看dba_sys_privs以查看是否授予了任何可能允許用戶SCOTT知道該表存在的權限。 – DCookie 2011-05-13 22:20:19