如何终止 PostgreSQL 用户的所有数据库使用

gue*_*tli 3 postgresql

如何终止特定 PostgreSQL 用户的所有数据库活动?

我知道如何选择它们:SELECT * FROM pg_stat_activity WHERE usename='foo_user'

我在这里找到了这个:/sf/answers/2472371891/

我所做的是首先检查正在运行的进程

SELECT * FROM pg_stat_activity WHERE state = 'active';
Run Code Online (Sandbox Code Playgroud)

找到您要终止的进程,然后键入:

SELECT pg_cancel_backend(<pid of the process>)
Run Code Online (Sandbox Code Playgroud)

如果无法杀死进程,请尝试:

SELECT pg_terminate_backend(<pid of the process>)
Run Code Online (Sandbox Code Playgroud)

但如何将其应用于多个进程呢?

使用案例

有时 CI 中的测试花费太长时间,系统应该被破坏。

小智 5

将其与您的第一个选择一起使用:

SELECT pg_cancel_backend(pid)
FROM pg_stat_activity 
WHERE usename='foo_user'
Run Code Online (Sandbox Code Playgroud)