banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

PostgreSQLのReadOnly(読み取り専用)ユーザーの作成

PostgreSQL では、スキーマとテーブルのレベルでデータテーブルを読み取り専用に制御することができます。通常、PostgreSQL を使用して読み取り専用ユーザーを作成し、適切な読み取り専用権限を付与することで実現します。

以下の手順を使用してください。

-- readonly_user ユーザーを作成し、パスワードを readonly_password に設定する
create user readonly_user with encrypted password 'readonly_password';
-- readonly_user ユーザーを読み取り専用トランザクションに設定する
alter user readonly_user set default_transaction_read_only=on;
-- readonly_user ユーザーにスキーマ "public" の usage 権限を付与する
grant usage on schema "public" to readonly_user;
-- "public" スキーマで新しく作成されるテーブルの読み取り権限を readonly_user ユーザーに付与する
alter default privileges in schema "public" grant select on tables to readonly_user;
-- readonly_user ユーザーに全てのテーブルの select 権限を付与する
grant select on all tables in schema "public" to readonly_user;
grant select on all sequences in schema "public" to readonly_user;
-- readonly_user ユーザーが指定したデータベースに接続できるようにする
grant connect on database splrp_dev to readonly_user;

注意:既存のデータテーブルを読み取り専用に設定する場合は、以下の手順を使用します。

-- readonly_user ユーザーにスキーマ "public" の usage 権限を付与する
grant usage on schema "public" to readonly_user;
-- readonly_user ユーザーに全てのテーブルの select 権限を付与する
grant select on all tables in schema "public" to readonly_user;
grant select on all sequences in schema "public" to readonly_user;

将来作成される新しいテーブルには、以下の手順を使用する必要があります。

-- "public" スキーマで新しく作成されるテーブルの読み取り権限を readonly_user ユーザーに付与する
alter default privileges in schema "public" grant select on tables to readonly_user;

これにより、将来作成されるテーブルも readonly_user に読み取り専用権限が付与されます。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。