2011-11-22 36 views
1

我剛剛在Linux系統上運行的Oracle 10 XE實例中導入了一個ORACLE數據庫。新的oracle用戶無法訪問表

數據庫的表分割了許多表空間,並且sys用戶能夠毫無問題地訪問所有表。

我創建了一個新用戶(fred),並且以該用戶身份登錄時無法訪問任何表。我已經設置了用戶的默認表空間,試圖在以fred登錄時訪問這些表。

alter user fred default tablespace t1; 

當我然後連接弗雷德和嘗試看一個表的表空間T1,我收到以下錯誤:

describe table1; 
ERROR: 
ORA-04043: object table1 does not exist 

如何配置用戶弗雷德,讓他可以輕鬆地訪問各種表空間(t1,t2,t3 ... t6)中的所有表,就像用戶sys目前可以的那樣?

我從來沒有真正涉足過oracle,但已經相當廣泛地使用MS SQL。

回答

3

在Oracle中,架構和用戶的概念與其他DBMS的概念不同。爲了獲得用戶fred的表訪問權限,您需要創建synonyms這些表和sys用戶需要在這些表上發佈授權(例如select,update e.t.c)。

+0

好啦,我已經不熟悉的同義詞,但會做一些關於這個問題的閱讀。是否有可能它們已經存在,但是,由於sys已經可以從任何表空間訪問表而不需要專門引用表空間名稱? – Bryan

+0

我已使用[此鏈接](https://forums.oracle.com/forums/thread.jspa?threadID=1016067)爲所有表格創建同義詞。現在工作正常。非常感謝。 – Bryan

+0

@Bryan我很高興它解決了你的問題,我正準備發佈一些鏈接來創建同義詞。甲骨文有時可能會很棘手。 Happy Oracling .. – Zohaib