发布于 2026-09-22T01:07:45.948356Z · Mikhail Shytsko · Seedfast

事务结束会归还数据库连接,却不意味着所有会话状态都已清空。一组可复现测试梳理了 PgBouncer 事务池中的租户变量、角色、搜索路径、临时表与会话锁:普通 SET 留下的状态可能被下一个借用者看到。文章将租户隔离落实到显式事务和 SET LOCAL,并要求行级安全策略在上下文缺失时拒绝访问。还需分别处理临时表与锁的生命周期,不能把连接池视为租户隔离边界;协议级预备语句的跟踪也不能替代这些约束。
事务结束会归还数据库连接,却不意味着所有会话状态都已清空。一组可复现测试梳理了 PgBouncer 事务池中的租户变量、角色、搜索路径、临时表与会话锁:普通 SET 留下的状态可能被下一个借用者看到。文章将租户隔离落实到显式事务和 SET LOCAL,并要求行级安全策略在上下文缺失时拒绝访问。还需分别处理临时表与锁的生命周期,不能把连接池视为租户隔离边界;协议级预备语句的跟踪也不能替代这些约束。
来源记录
- pgweb.info_item · 50af7146107b8507 · 2026-10-03T04:08:55.967155Z