You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL Windows认证配置:动态构建代理的计算机名适配方法

解决PostgreSQL Windows认证中动态机器名的映射问题

方法1:使用通配符匹配任意机器名

PostgreSQL的pg_ident.conf支持通配符匹配,你可以用*替代具体计算机名部分,这样不管动态资源池里的代理服务器机器名是什么,只要系统用户名匹配就能完成映射。

修改pg_ident.conf的映射规则如下:

# MAPNAME       SYSTEM-USERNAME         PG-USERNAME
MapForSSPI     user@*        postgres

user@*会匹配所有机器上的user系统用户,完美适配动态资源池的场景。

方法2:使用无机器名的本地用户格式(本地连接场景)

如果代理通过localhost回路连接数据库(比如构建服务器和PostgreSQL部署在同一机器),可以直接使用不带机器名的系统用户名:

# MAPNAME       SYSTEM-USERNAME         PG-USERNAME
MapForSSPI     user        postgres

这种情况下PostgreSQL会自动匹配本地的user系统用户,无需指定机器名。

配套pg_hba.conf配置

确保pg_hba.conf中对应规则指向该映射,示例如下:

# 允许任意IP的代理通过SSPI认证映射到postgres
host    all             postgres        0.0.0.0/0               sspi map=MapForSSPI

如果仅允许本地连接,可改为:

host    all             postgres        127.0.0.1/32            sspi map=MapForSSPI

注意事项

  • 修改配置后必须重启PostgreSQL服务才能生效。
  • 通配符*会匹配任意后缀,需确保该系统用户名不会带来跨机器的安全风险。
  • 若代理使用域用户,可改用DOMAIN\user格式,该格式不受机器名限制,前提是代理服务器属于同一域。

内容的提问来源于stack exchange,提问作者Ido Segal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 14:55:21