2014-01-15 52 views
1

我正在使用Oracle 11g Express版本。我在兩個不同的表空間上創建了兩個不同的用戶(user1,user2)。每個用戶都有相同的一組表(相同的表名,列,數據類型)。我配置了我的應用程序連接到user2,但它總是訪問user1的表。我的期望是它將訪問user2的表。我加倍檢查用於連接數據庫的用戶名/密碼。我不知道這裏發生了什麼事!Oracle訪問錯誤表

我找到了答案:問題不在於Oracle。這是因爲Hibernate的,我在這裏找到了答案:http://www.schakko.de/2014/01/07/hibernate-uses-wrong-schema-during-schema-validation/

對不起任何混亂我做了^^

+0

表格數據也有差異嗎? – San

+0

看起來,問題出在你的App配置上,而不是Oracle。請查看您的應用程序的配置文件。 – vishad

+0

我不知道問題在哪裏,因爲當我刪除user1時,我的應用程序然後立即連接到user2! –

回答

0
select t.* 
    from user2.table1 t 
1

一種解決方案是設置hibernate.default_schema財產,以適應您的用戶(在你的持久單位或env財產使用 -Dhibernate.default_schema = YOUR_SCHEMA jvm param)。

其他解決方案是取消特權以訪問您的用戶的其他模式。這也不應該被允許也是因爲可預見的安全問題(除非該特定用戶需要這種訪問)。