全のテーブルに対して、読み取り権限のみを設定します。
ロールの作成
CREATE ROLE read_only_user LOGIN REPLICATION PASSWORD 'password';
* ‘password’は任意に設定してください。
ロールの一覧確認
psqlを使っていれば¥du
とすれば、下記のように出力されます。Role name | Attributes | Member of |
---|---|---|
postgres | Superuser, Create role, Create DB, Replication | {} |
権限の付与
GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only_user;
上記は、read_only_userに schemaがpublicの全テーブルに Select権限を付与します。 というような感じです。
権限の付与の確認
psqlを使っていれば¥z
とすれば、下記の様に出力されます。 read_only_user=r/postgres となっていることを確認。
Schema | Name | Type | Access privileges | Column access privileges |
---|---|---|---|---|
public | user | table | postgres=arwdDxt/postgres+ | |
read_only_user=r/postgres | ||||
public | book | table | postgres=arwdDxt/postgres+ | |
read_only_user=r/postgres |
r -- SELECT(読み取り(read))
w -- UPDATE(書き込み(write))
a -- INSERT (追加(append))
d -- DELETE
R -- RULE
x -- REFERENCES
t -- TRIGGER
X -- EXECUTE
U -- USAGE
C -- CREATE
T -- TEMPORARY
その他
schemaの確認
psqlを使っていれば¥d
とすれば、下記のように出力されます。Schema | Name | Type | Owner |
---|---|---|---|
public | user | table | postgres |
public | book | table | postgres |
0 件のコメント:
コメントを投稿