質問編集履歴

4

試したことを追記

2019/06/27 06:07

投稿

Tatsuya.S
Tatsuya.S

スコア11

test CHANGED
File without changes
test CHANGED
@@ -46,11 +46,27 @@
46
46
 
47
47
 
48
48
 
49
- 外部テーブルない他テーブルては参照できした
49
+ \dは以下よう表示されていま
50
50
 
51
+ public | Table_A | 外部テーブル | ユーザA
52
+
51
- ・\zで確認したところ他のテーブルと同じアクセス権はついていた。
53
+ public | Table_B | テーブル | ユーザA
52
54
 
53
55
 
56
+
57
+ ・\d Table_Aは結果を正しく取得できました。
58
+
59
+ ・外部テーブルでないTable_B へのselectは可能でした。
60
+
61
+ ・\zで確認したところ他のテーブルと同じアクセス権はついていました。
62
+
63
+ public | Table_A     | 外部テーブル | ユーザA=arwdDxt/DB_A+|
64
+
65
+ | | | ユーザB=r/DB_A |
66
+
67
+ public | Table_B    | テーブル | ユーザA=arwdDxt/DB_A+|
68
+
69
+ | | | ユーザB=r/DB_A
54
70
 
55
71
  ・select * from "ユーザA".Table_Aで検索したところ以下のエラーが発生
56
72
 

3

タイトルを編集

2019/06/27 06:07

投稿

Tatsuya.S
Tatsuya.S

スコア11

test CHANGED
@@ -1 +1 @@
1
- ### 前提・実現したいこと ユーザAが作成したDBDB_Aの外部テーブルをTable_AをユーザBで参照(select)したい。 外部テーブルはユーザAで「CREATE FOREIGN TABL
1
+ ユーザの外部テーブルを参照したい。
test CHANGED
File without changes

2

外部テーブルについて説明を補足 試したSQLを追記

2019/06/27 05:54

投稿

Tatsuya.S
Tatsuya.S

スコア11

test CHANGED
@@ -1 +1 @@
1
- postgresでの別ユーザの外部テーブル参照につ
1
+ ### 前提・実現したいこと ユーザAが作成したDBDB_Aの外部テーブルをTable_AをユーザBで参照(select)した。 外部テーブルはユーザAで「CREATE FOREIGN TABL
test CHANGED
@@ -3,6 +3,10 @@
3
3
 
4
4
 
5
5
  ユーザAが作成したDBのDB_Aの外部テーブルをTable_AをユーザBで参照(select)したい。
6
+
7
+ 外部テーブルはユーザAで「CREATE FOREIGN TABLE」を使い作成しています。
8
+
9
+ 外部テーブルの参照先の外部DBは別マシンの別DBです
6
10
 
7
11
 
8
12
 
@@ -34,6 +38,10 @@
34
38
 
35
39
 
36
40
 
41
+
42
+
43
+
44
+
37
45
  ### 試したこと
38
46
 
39
47
 
@@ -44,6 +52,16 @@
44
52
 
45
53
 
46
54
 
55
+ ・select * from "ユーザA".Table_Aで検索したところ以下のエラーが発生
56
+
57
+ ERROR:リレーション""ユーザA".table_a"は存在しません
58
+
59
+
60
+
61
+ select * from "ユーザA".public.table_aで検索したところ以下のエラー
62
+
63
+ ERROR: データベース間の参照は実装されていません:
64
+
47
65
 
48
66
 
49
67
  ### 補足情報(FW/ツールのバージョンなど)

1

実施行ったSQLを追記しました。

2019/06/27 05:43

投稿

Tatsuya.S
Tatsuya.S

スコア11

test CHANGED
File without changes
test CHANGED
@@ -6,9 +6,17 @@
6
6
 
7
7
 
8
8
 
9
- ユーザBのロールを作成して「GRANT SELECT ON ALL TABLES」で権限を付けて
9
+ ユーザBのロールを作成して以下のSQLを発行し権限を付
10
+
11
+ GRANT SELECT ON ALL TABLES IN SCHEMA public To 【ユーザB】;」
12
+
13
+ ※【ユーザB】の箇所は実際のユーザ名
14
+
15
+
10
16
 
11
17
  selectしたところ以下のエラーメッセージが発生しました。
18
+
19
+ select * from Table_A
12
20
 
13
21
 
14
22