Oracle
ORA-00942: 表或視圖不存在 - 可以通過授予使用者權限來解決嗎?
我正在創建一個連接到 Oracle 數據庫的 Java 應用程序。
在應用程序中,我以User A身份連接到數據庫,這按預期工作。
然後我嘗試訪問Schema 1和Schema 2中的表。
但是,當我這樣做時,我得到了錯誤:
ORA-00942: table or view does not exist
我查看了 SQLDeveloper,在使用者 AI 的*“其他使用者”*部分看不到模式 1 和 2 的任何表。
如何解決此錯誤,以便我可以查看和訪問模式 1 和 2 中的表?
我可以通過
GRANT SELECT
為使用者 A 分配模式 1 和 2 的權限來做到這一點嗎?
看看 Oracle 對此類錯誤的說法。
ORA-00942 表或視圖不存在
**原因:**指定的表或視圖不存在,使用了此處不允許的同義詞,或者在需要表的地方引用了視圖。如果您嘗試訪問其他模式的表或視圖,那麼您可能不需要權限來執行此操作。
**行動:**你可以——
- 檢查表或視圖名稱的拼寫。
- 檢查現有的表或視圖名稱是否存在。
- 如果需要創建表或者需要使用者或應用程序權限來訪問表,請聯繫 DBA。
以下是解決您的情況的範例。它顯示瞭如何授予
SELECT
對象權限以及如何創建同義詞。SQL> create user userA identified by userA; User created. SQL> grant connect, resource to usera; Grant succeeded. SQL> conn userA/userA Connected. SQL> create table tab (id number); Table created. SQL> conn / as sysdba Connected. SQL> create user schema1 identified by schema1; User created. SQL> grant connect, resource to schema1; Grant succeeded. SQL> conn schema1/schema1 Connected. SQL> create table tab1(id number); Table created. SQL> select * from usera.tab; select * from usera.tab * ERROR at line 1: ORA-00942: table or view does not exist SQL> conn usera/userA Connected. SQL> grant select on tab to schema1; Grant succeeded. SQL> conn schema1/schema1 Connected. SQL> select * from usera.tab; no rows selected SQL> create synonym for usera.tab; create synonym for usera.tab * ERROR at line 1: ORA-00995: missing or invalid synonym identifier SQL> create synonym usera_tab for usera.tab; create synonym usera_tab for usera.tab * ERROR at line 1: ORA-01031: insufficient privileges SQL> conn / as sysdba Connected. SQL> grant create synonym to schema1; Grant succeeded. SQL> conn schema1/schema1 Connected. SQL> create synonym usera_tab for usera.tab; Synonym created. SQL> select * from usera_tab; no rows selected SQL>