PostgreSQLのstatement_timeoutを指定ユーザにだけ設定する
通常使うユーザの行うpg_dumpやvacuumdbには影響させたくないので、ユーザAが実行している時だけ30秒でstatement_timeoutさせたい。
と言った時に、セッションごとに SET statement_timeout をやるのも面倒だし入力漏れが出るので、ユーザAだけデフォルトで30秒に出来れば楽です。
そんなわけで、ユーザのデフォルト値を設定します。
ALTER ROLE [ユーザA] SET statement_timeout TO 30000; -- 30sec
SHOW statement_timeout; -- セッション中は以前の設定のまま変わらず?
セッション終了後に有効になるようですので、一旦セッションを終了させ再度セッションに入って確認します。
SHOW statement_timeout; -- 30000 で出力
- この後、リスタートしても値は保持されていました。
- 他の未設定ユーザで見ると、初期値が出力されます(postgresql.confのデフォルトは0)。
- またユーザ設定していても、セッション内のSET statement_timeoutでセッション中のみ上書き可能です。
ちなみに、1(1ミリ秒)に設定すると\dすら失敗します(でもSETで上書きは出来ました)。
そう言うユーザ作るメリット有るかは疑問ですが。
この投稿は 2023年1月13日 金曜日 16:10 に 未分類 カテゴリーに公開されました。 この投稿へのコメントは RSS 2.0 フィードで購読することができます。
このページの一番下でコメントを残すことができます。トラックバック / ピンバックは現在受け付けていません。