回答編集履歴

4

追記

2020/06/17 08:08

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -43,3 +43,7 @@
43
43
  GRANT SELECT ON ALL TABLES IN SCHEMA schema_name To role_name;
44
44
 
45
45
  ```
46
+
47
+
48
+
49
+ 若しくはREVOKEで指定しているスキーマーが不足しているのではないでしょうか。

3

追記

2020/06/17 08:08

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -27,3 +27,19 @@
27
27
  >
28
28
 
29
29
  > **対象がテーブル空間**の場合は、テーブル空間内でのテーブルとインデックス、一時ファイルの作成と、デフォルトのテーブル空間としてこのテーブル空間を持つデータベースの作成を許可します (この権限の取り消しによって既存のデータベースやスキーマの配置が変わることはないことに注意してください)。
30
+
31
+
32
+
33
+  
34
+
35
+ >> 逆を言えば、指定したDB内の指定したスキーマ内のテーブルをSELECTだけできればよいです。
36
+
37
+
38
+
39
+ スキーマーに対してまとめて行うなら
40
+
41
+ ```SQL
42
+
43
+ GRANT SELECT ON ALL TABLES IN SCHEMA schema_name To role_name;
44
+
45
+ ```

2

推敲

2020/06/17 06:45

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  --
14
14
 
15
- 設定可能な権限に対して剥奪はできますけど、対象のオブジェクトとしてテーブルという概念はなさそうなので、剥奪は出来ないのではないかと思います。
15
+ 設定可能な権限に対して剥奪はできますけど、CREATE対象のオブジェクトとしてテーブルという概念はなさそうなので、剥奪は出来ないのではないかと思います。
16
16
 
17
17
  [GRANT — アクセス権限を定義する](https://www.postgresql.jp/document/9.5/html/sql-grant.html)
18
18
 

1

追記

2020/06/17 06:37

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -5,3 +5,25 @@
5
5
  スキーマに対しての権限を与えます。
6
6
 
7
7
  [スキーマの中にテーブルなどのオブジェクトを作成する権限を追加する](https://www.dbonline.jp/postgresql/role/index3.html#section5)
8
+
9
+
10
+
11
+ 追記
12
+
13
+ --
14
+
15
+ 設定可能な権限に対して剥奪はできますけど、対象のオブジェクトとしてテーブルという概念はなさそうなので、剥奪は出来ないのではないかと思います。
16
+
17
+ [GRANT — アクセス権限を定義する](https://www.postgresql.jp/document/9.5/html/sql-grant.html)
18
+
19
+ > CREATE
20
+
21
+ > **対象がデータベース**の場合は、データベース内での新規スキーマの作成を許可します。
22
+
23
+ >
24
+
25
+ > **対象がスキーマ**の場合は、スキーマ内での新規オブジェクトの作成を許可します。 既存のオブジェクトの名前を変更するには、オブジェクトを所有し、かつ、そのオブジェクトが入っているスキーマに対してこの権限を保持していなければなりません。
26
+
27
+ >
28
+
29
+ > **対象がテーブル空間**の場合は、テーブル空間内でのテーブルとインデックス、一時ファイルの作成と、デフォルトのテーブル空間としてこのテーブル空間を持つデータベースの作成を許可します (この権限の取り消しによって既存のデータベースやスキーマの配置が変わることはないことに注意してください)。