2009-05-25 61 views
0

在工作中,我有一個應用程序坐在Oracle 7.3上(舊的東西,是的)。最近我嘗試創建一個賬戶,可以在所有表​​上進行SELECT操作,但沒有其他操作,即沒有更新或刪除操作。但是每當我創建一個新帳戶時,它就可以訪問所有應用程序表。我甚至只將它剝離爲CREATE SESSION。這沒有幫助 - 用戶仍然可以更新任何表!ORACLE 7.3用戶管理

所以,我發現有一大堆公共同義詞的名字與表格完全一樣(即表myTable123,公共同義詞myTable123)。我刪除了其中的一個,用戶無法在該特定表上選擇。然後我創建了一個新表,顯然新用戶看不到它。我爲該表添加了一個公共同義詞,希望用戶能夠訪問它。沒有運氣新用戶不能看到它..這是有道理的,因爲沒有GRANTs給出。必須有別的東西......

我不是甲骨文的專家,我試圖找到這個問題的底部,但沒有運氣到目前爲止。 請幫助您提供任何建議。 乾杯! Damo

回答

5

正如tuinstoel所說,您可以忽略公共同義詞 - 這不會影響權限。

這可能是因爲您是何時建立的原始表的創建者做了

grant [permissions] on [table] to public 

其中[權限]可能是爲「全」在廣泛,這意味着任何新的用戶將自動被授予的權限上那些表格。

是否

select * from ALL_TAB_PRIVS where table_name = '[one of your problem tables]' 

什麼回報?

順便說一句 - 從來沒有使用Oracle 7.3.3 - 我假設許可模式沒有太多改變。

+0

Hobo, 感謝您的回答!我想你已經明白了。我本週休假,但一回到工作崗位就會檢查。 謝謝! 達摩 – 2009-05-26 16:33:55

1

Oracle 7.3不僅年老,而且非常非常古老。它是12歲或13歲。

創建或刪除公共syns不會更改anyones訪問表的權限。創建公共同義詞的唯一原因是可以訪問一個表,而不用它的模式名稱作爲前綴。

我認爲你的老用戶有'更新任何表'和'選擇任何表'或'dba'等特權。

+0

我認爲這是14歲。該文件版權爲1995. – RussellH 2009-05-28 18:26:22