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

pgBouncer是否支持客户端与服务端不同认证机制及特定场景可行性?

关于pgBouncer跨端认证机制的问题解答

1. pgBouncer是否支持客户端与服务端采用不同的认证机制?

是的,pgBouncer完全支持客户端到自身的认证,与自身到PostgreSQL服务端的认证采用不同机制。它的认证逻辑分层独立:客户端连接pgBouncer时遵循pgBouncer的客户端认证规则,pgBouncer作为客户端连接PostgreSQL时,则遵循PostgreSQL服务端的认证规则,两者互不干扰。

2. 客户端到pgBouncer(1.17.0)采用trust认证,pgBouncer到PostgreSQL(14)采用证书认证是否可行?

完全可行,以下是关键配置要点:

pgBouncer配置(pgbouncer.ini)

  • 客户端认证设置:将auth_type设为trust,允许客户端无需密码连接,同时配置监听地址确保目标客户端能访问:

    auth_type = trust
    listen_addr = 0.0.0.0
    listen_port = 6432
    

    若需针对特定用户细化规则,可通过auth_file(如userlist.txt)配置,格式为:

    "target_user" ""
    

    空密码配合trust认证即可放行指定用户。

  • 后端PostgreSQL连接设置:在[databases]段指定使用证书认证的连接字符串,包含SSL相关参数:

    [databases]
    target_db = host=pg_server_ip port=5432 dbname=target_db user=pg_service_user sslmode=verify-full sslrootcert=/etc/pgbouncer/root.crt sslcert=/etc/pgbouncer/pgbouncer_client.crt sslkey=/etc/pgbouncer/pgbouncer_client.key
    

    需替换为实际的数据库地址、证书路径及用户信息,sslmode=verify-full确保严格验证证书有效性。

PostgreSQL服务端配置

  • 在postgresql.conf中开启SSL并指定根证书:
    ssl = on
    ssl_ca_file = '/etc/postgresql/14/main/root.crt'
    
  • 在pg_hba.conf中添加允许pgBouncer通过证书认证的规则:
    hostssl target_db pg_service_user pgbouncer_ip/32 cert
    
    这条规则限制仅来自pgBouncer IP的连接,通过证书认证访问指定数据库和用户。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:35:23