teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

試したことを追記

2019/06/27 06:07

投稿

Tatsuya.S
Tatsuya.S

スコア11

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
- ・\zで確認したところ他のテーブルと同じアクセス権はついていた。
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

タイトルを編集

2019/06/27 06:07

投稿

Tatsuya.S
Tatsuya.S

スコア11

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

2

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

2019/06/27 05:54

投稿

Tatsuya.S
Tatsuya.S

スコア11

title CHANGED
@@ -1,1 +1,1 @@
1
- postgresでの別ユーザの外部テーブル参照につ
1
+ ### 前提・実現したいこと ユーザAが作成したDBDB_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を追記しました。

2019/06/27 05:43

投稿

Tatsuya.S
Tatsuya.S

スコア11

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のロールを作成して「GRANT SELECT ON ALL TABLES」で権限を付けて
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