2014年10月25日土曜日

Postgresで読み取り専用のロール(ユーザー)の作成方法

Postgresで読み取り専用のロール(ユーザー)を作成します。
全のテーブルに対して、読み取り権限のみを設定します。

ロールの作成

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_userschemaが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 件のコメント:

コメントを投稿

statistics

Arsip