前提・実現したいこと
ユーザAが作成したDBのDB_Aの外部テーブルをTable_AをユーザBで参照(select)したい。
外部テーブルはユーザAで「CREATE FOREIGN TABLE」を使い作成しています。
外部テーブルの参照先の外部DBは別マシンの別DBです
ユーザBのロールを作成して以下のSQLを発行し権限を付与
GRANT SELECT ON ALL TABLES IN SCHEMA public To 【ユーザB】;」
※【ユーザB】の箇所は実際のユーザ名
selectしたところ以下のエラーメッセージが発生しました。
select * from Table_A
発生している問題・エラーメッセージ
ERROR: "ユーザB" に対するユーザ対応表が見つかりません
試したこと
・\dでは以下のように表示されています。
public | Table_A | 外部テーブル | ユーザA
public | Table_B | テーブル | ユーザA
・\d Table_Aは結果を正しく取得できました。
・外部テーブルでないTable_B へのselectは可能でした。
・\zで確認したところ他のテーブルと同じアクセス権はついていました。
public | Table_A | 外部テーブル | ユーザA=arwdDxt/DB_A+|
| | | ユーザB=r/DB_A |
public | Table_B | テーブル | ユーザA=arwdDxt/DB_A+|
| | | ユーザB=r/DB_A
・select * from "ユーザA".Table_Aで検索したところ以下のエラーが発生
ERROR:リレーション""ユーザA".table_a"は存在しません
select * from "ユーザA".public.table_aで検索したところ以下のエラー
ERROR: データベース間の参照は実装されていません:
補足情報(FW/ツールのバージョンなど)
psql (PostgreSQL) 9.4.10
回答1件
あなたの回答
tips
プレビュー