2017-08-10 64 views
0

我有主從架構。在從屬設備上,我有一個帶有兩個模式的Oracle數據庫,例如TEST1TEST2Oracle外部數據封裝器

我存儲在架構TEST1所有對象(例如EMPLOYEES),以及用戶TEST1(或管理)已就TEST1.EMPLOYEES只讀的權限TEST2,所以當我在查詢Oracle數據庫上使用TEST1.EMPLOYEES我可以訪問它的數據。

如何在postgres 9.5中使用Oracle外部數據包裝來實現相同的功能,因爲我擁有TEST2而不是TEST1的憑據? 當我嘗試訪問外部表時,它給出一個錯誤,說​​3210不存在。

回答

1

您可以輕鬆地做到這一點,如果你定義一個用戶TEST2和外部表與schema選項憑證的用戶映射,即

CREATE FOREIGN TABLE ... OPTIONS (schema 'TEST1', table 'EMPLOYEES'); 
+0

你的回答幫我...我的問題解決了.. THX很多 –

+0

@LaurenzAlbe:在postgres-9.4中,這些選項被命名爲'schema_name'和'table_name'(我不知道這些*關鍵字*是否已被重命名爲inlater版本) – wildplasser

+1

@wildplasser:你錯了。這些選項的名稱不是由PostgreSQL指定的,它們是由外部數據包裝器定義的。 oracle_fdw和postgres_fdw中名稱不同的主要原因是我首先寫了oracle_fdw,所以我無法複製行爲... –