Postgresqlの運用チートシート

Role(User)作成と権限の付与

  • 参照専用なroleの作成
CREATE ROLE read_only_role;
GRANT USAGE ON schema foo_schema TO read_only_role;
GRANT SELECT ON ALL TABLES IN SCHEMA foo_schema To read_only_role;
  • ユーザの作成と参照専用roleの割当
CREATE ROLE foo_user LOGIN ENCRYPTED PASSWORD 'xxx';
GRANT read_only_role TO foo_user;

^ RDSのマスタユーザだと加えて注意が必要 参考

  • ユーザからroleの剥奪
REVOKE read_only_role FROM foo_user;
  • 割り当てたroleの確認
\du foo_user

運用系

  • 現在のコネクションの確認
select usename,application_name from pg_stat_activity;
  • 特定ユーザのコネクションの切断
select
  pg_terminate_backend(pid)
from
  pg_stat_activity
where
  usename = 'foo_user'
and
  pid <> pg_backend_pid() -- 自分のセッションを除外(だいじ)
;

その他関数

  • バージョン確認
    • select version();

参考

PostgreSQLとMySQLで、僕がよく使うシステムコマンドのメモ - Qiita

PostgreSQLとMySQLの基本的なコマンドを比較 - Qiita

PostgreSQLコマンド - Qiita

PostgreSQLのロール - Qiita