注意
PostgreSQL 初心者が書いてます。
やりたいこと
- 誤ってテーブルやデータを消してしまわないように、全データベースに対して読み取り専用のロールを作りたい
いろいろやってわかったこと
- どうやらそういうロールを一発で設定することはできないらしい
- データベースのスキーマのテーブルごとには
GRANT
で設定ができる- ただし新しくテーブルが作られた場合は都度
GRANT
を実行しなければいけないっぽい
- ただし新しくテーブルが作られた場合は都度
具体的なコマンド例
- 例えば以下のような
GRANT
を発行する。これは適用したい各データベース全てにプロンプトを移して行わなければいけない
foobar_database=# GRANT SELECT ON ALL TABLES IN SCHEMA public TO i_am_readonly_role;