質問編集履歴
4
試したことを追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -22,9 +22,17 @@
|
|
22
22
|
|
23
23
|
### 試したこと
|
24
24
|
|
25
|
-
・
|
25
|
+
・\dでは以下のように表示されています。
|
26
|
+
public | Table_A | 外部テーブル | ユーザA
|
26
|
-
|
27
|
+
public | Table_B | テーブル | ユーザA
|
27
28
|
|
29
|
+
・\d Table_Aは結果を正しく取得できました。
|
30
|
+
・外部テーブルでないTable_B へのselectは可能でした。
|
31
|
+
・\zで確認したところ他のテーブルと同じアクセス権はついていました。
|
32
|
+
public | Table_A | 外部テーブル | ユーザA=arwdDxt/DB_A+|
|
33
|
+
| | | ユーザB=r/DB_A |
|
34
|
+
public | Table_B | テーブル | ユーザA=arwdDxt/DB_A+|
|
35
|
+
| | | ユーザB=r/DB_A
|
28
36
|
・select * from "ユーザA".Table_Aで検索したところ以下のエラーが発生
|
29
37
|
ERROR:リレーション""ユーザA".table_a"は存在しません
|
30
38
|
|
3
タイトルを編集
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
別ユーザの外部テーブルを参照したい。
|
body
CHANGED
File without changes
|
2
外部テーブルについて説明を補足 試したSQLを追記
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
### 前提・実現したいこと ユーザAが作成したDBのDB_Aの外部テーブルをTable_AをユーザBで参照(select)したい。 外部テーブルはユーザAで「CREATE FOREIGN TABL
|
body
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
3
|
ユーザAが作成したDBのDB_Aの外部テーブルをTable_AをユーザBで参照(select)したい。
|
4
|
+
外部テーブルはユーザAで「CREATE FOREIGN TABLE」を使い作成しています。
|
5
|
+
外部テーブルの参照先の外部DBは別マシンの別DBです
|
4
6
|
|
5
7
|
ユーザBのロールを作成して以下のSQLを発行し権限を付与
|
6
8
|
GRANT SELECT ON ALL TABLES IN SCHEMA public To 【ユーザB】;」
|
@@ -16,12 +18,19 @@
|
|
16
18
|
```
|
17
19
|
|
18
20
|
|
21
|
+
|
22
|
+
|
19
23
|
### 試したこと
|
20
24
|
|
21
25
|
・外部テーブルでない他のテーブルについては参照できました。
|
22
26
|
・\zで確認したところ他のテーブルと同じアクセス権はついていた。
|
23
27
|
|
28
|
+
・select * from "ユーザA".Table_Aで検索したところ以下のエラーが発生
|
29
|
+
ERROR:リレーション""ユーザA".table_a"は存在しません
|
24
30
|
|
31
|
+
select * from "ユーザA".public.table_aで検索したところ以下のエラー
|
32
|
+
ERROR: データベース間の参照は実装されていません:
|
33
|
+
|
25
34
|
### 補足情報(FW/ツールのバージョンなど)
|
26
35
|
|
27
36
|
psql (PostgreSQL) 9.4.10
|
1
実施行ったSQLを追記しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,8 +2,12 @@
|
|
2
2
|
|
3
3
|
ユーザAが作成したDBのDB_Aの外部テーブルをTable_AをユーザBで参照(select)したい。
|
4
4
|
|
5
|
-
ユーザBのロールを作成して
|
5
|
+
ユーザBのロールを作成して以下のSQLを発行し権限を付与
|
6
|
+
GRANT SELECT ON ALL TABLES IN SCHEMA public To 【ユーザB】;」
|
7
|
+
※【ユーザB】の箇所は実際のユーザ名
|
8
|
+
|
6
9
|
selectしたところ以下のエラーメッセージが発生しました。
|
10
|
+
select * from Table_A
|
7
11
|
|
8
12
|
### 発生している問題・エラーメッセージ
|
9
13
|
|