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

psycopg2连接Azure PostgreSQL遇pg_hba.conf加密错误排查

问题分析与解决方案

核心原因

错误提示里的no encryption是关键——Azure PostgreSQL默认强制要求SSL加密连接,PgAdmin和VS Code这类工具会自动启用SSL配置,而你用psycopg2时没有指定加密选项,导致连接被拒绝。

解决步骤

1. 启用SSL连接(最常用方案)

在psycopg2.connect()中添加sslmode='require'参数,确保连接使用SSL加密:

import psycopg2

conn = psycopg2.connect(
    host="<hostname>",
    port=5432,
    database="<db_name>",
    user="<user_name>",
    password="<password>",
    sslmode='require'
)

2. 进阶:验证SSL证书(可选)

如果需要更严格的SSL验证,可以下载Azure提供的根证书,指定sslmode='verify-full'和sslrootcert参数:

conn = psycopg2.connect(
    host="<hostname>",
    port=5432,
    database="<db_name>",
    user="<user_name>",
    password="<password>",
    sslmode='verify-full',
    sslrootcert='/本地路径/BaltimoreCyberTrustRoot.crt.pem'
)

3. 额外排查点

  • 确认用户名格式是否正确:Azure PostgreSQL的用户名需要包含服务器后缀,格式为用户名@服务器名称,如果只填了用户名没加后缀,也可能导致认证问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 13:00:04