首页 > 解决方案 > 强制单个受损角色与 PostgresQL 断开连接?

问题描述

我正在寻找一种方法来立即从 PostgresQL 数据库中断开单个已知的不良演员角色。我想阻止他们尽快进行进一步的更改,并且不希望他们能够立即重新连接并继续。我不希望这破坏当前在数据库上工作的任何其他连接。

我在这里看到了一些信息,但不清楚如何干净地将其应用于这种情况:使用 PostgreSQL 强制客户端断开连接

标签: postgresqlsecurity

解决方案


从 PostgresQL 11.2 开始,如果您的问题角色是“baduser”,您可以在 psql 中运行以下命令。

-- to prevent further connections from this user
ALTER ROLE baduser WITH NOLOGIN;
-- to terminate current connection from this user
SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE usename = 'baduser';

推荐阅读