Postgresql
如何為每個使用者設置語句超時?
我在 Postgres 中有多個使用者。我想為不同的使用者設置不同的語句超時。
例如:訪客 5 分鐘和管理員 10 分鐘。
在 Postgres 11.11 中可以嗎?
是的,Postgres 允許每個使用者甚至每個數據庫和使用者進行設置,包括
statement_timeout
:ALTER ROLE foo SET statement_timeout = 12345; -- milliseconds
有關的:
要查看會話的目前活動設置:
SHOW statement_timeout;
或者從視圖中獲取更多詳細資訊
pg_settings
(包括它是如何設置的):SELECT * FROM pg_settings WHERE name = 'statement_timeout';
檢查角色的目前設置:
SELECT rolname, rolconfig FROM pg_roles WHERE rolname = 'foo';
rolconfig
是一個數組,將其取消嵌套以獲得每行一個設置:SELECT rolname, unnest(rolconfig) AS setting FROM pg_roles WHERE rolname = 'foo';