回答編集履歴
4
追記
answer
CHANGED
@@ -20,4 +20,6 @@
|
|
20
20
|
スキーマーに対してまとめて行うなら
|
21
21
|
```SQL
|
22
22
|
GRANT SELECT ON ALL TABLES IN SCHEMA schema_name To role_name;
|
23
|
-
```
|
23
|
+
```
|
24
|
+
|
25
|
+
若しくはREVOKEで指定しているスキーマーが不足しているのではないでしょうか。
|
3
追記
answer
CHANGED
@@ -12,4 +12,12 @@
|
|
12
12
|
>
|
13
13
|
> **対象がスキーマ**の場合は、スキーマ内での新規オブジェクトの作成を許可します。 既存のオブジェクトの名前を変更するには、オブジェクトを所有し、かつ、そのオブジェクトが入っているスキーマに対してこの権限を保持していなければなりません。
|
14
14
|
>
|
15
|
-
> **対象がテーブル空間**の場合は、テーブル空間内でのテーブルとインデックス、一時ファイルの作成と、デフォルトのテーブル空間としてこのテーブル空間を持つデータベースの作成を許可します (この権限の取り消しによって既存のデータベースやスキーマの配置が変わることはないことに注意してください)。
|
15
|
+
> **対象がテーブル空間**の場合は、テーブル空間内でのテーブルとインデックス、一時ファイルの作成と、デフォルトのテーブル空間としてこのテーブル空間を持つデータベースの作成を許可します (この権限の取り消しによって既存のデータベースやスキーマの配置が変わることはないことに注意してください)。
|
16
|
+
|
17
|
+
|
18
|
+
>> 逆を言えば、指定したDB内の指定したスキーマ内のテーブルをSELECTだけできればよいです。
|
19
|
+
|
20
|
+
スキーマーに対してまとめて行うなら
|
21
|
+
```SQL
|
22
|
+
GRANT SELECT ON ALL TABLES IN SCHEMA schema_name To role_name;
|
23
|
+
```
|
2
推敲
answer
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
追記
|
7
7
|
--
|
8
|
-
設定可能な権限に対して剥奪はできますけど、対象のオブジェクトとしてテーブルという概念はなさそうなので、剥奪は出来ないのではないかと思います。
|
8
|
+
設定可能な権限に対して剥奪はできますけど、CREATE対象のオブジェクトとしてテーブルという概念はなさそうなので、剥奪は出来ないのではないかと思います。
|
9
9
|
[GRANT — アクセス権限を定義する](https://www.postgresql.jp/document/9.5/html/sql-grant.html)
|
10
10
|
> CREATE
|
11
11
|
> **対象がデータベース**の場合は、データベース内での新規スキーマの作成を許可します。
|
1
追記
answer
CHANGED
@@ -1,4 +1,15 @@
|
|
1
1
|
> テーブル生成を禁止する方法はありますでしょうか?
|
2
2
|
|
3
3
|
スキーマに対しての権限を与えます。
|
4
|
-
[スキーマの中にテーブルなどのオブジェクトを作成する権限を追加する](https://www.dbonline.jp/postgresql/role/index3.html#section5)
|
4
|
+
[スキーマの中にテーブルなどのオブジェクトを作成する権限を追加する](https://www.dbonline.jp/postgresql/role/index3.html#section5)
|
5
|
+
|
6
|
+
追記
|
7
|
+
--
|
8
|
+
設定可能な権限に対して剥奪はできますけど、対象のオブジェクトとしてテーブルという概念はなさそうなので、剥奪は出来ないのではないかと思います。
|
9
|
+
[GRANT — アクセス権限を定義する](https://www.postgresql.jp/document/9.5/html/sql-grant.html)
|
10
|
+
> CREATE
|
11
|
+
> **対象がデータベース**の場合は、データベース内での新規スキーマの作成を許可します。
|
12
|
+
>
|
13
|
+
> **対象がスキーマ**の場合は、スキーマ内での新規オブジェクトの作成を許可します。 既存のオブジェクトの名前を変更するには、オブジェクトを所有し、かつ、そのオブジェクトが入っているスキーマに対してこの権限を保持していなければなりません。
|
14
|
+
>
|
15
|
+
> **対象がテーブル空間**の場合は、テーブル空間内でのテーブルとインデックス、一時ファイルの作成と、デフォルトのテーブル空間としてこのテーブル空間を持つデータベースの作成を許可します (この権限の取り消しによって既存のデータベースやスキーマの配置が変わることはないことに注意してください)。
|