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で上書きは出来ました)。
そう言うユーザ作るメリット有るかは疑問ですが。
This entry was posted on 金曜日, 1月 13th, 2023 at 16:10 and is filed under 未分類. You can follow any responses to this entry through the RSS 2.0 feed.
You can skip to the end and leave a response. Pinging is currently not allowed.