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

如何使用pyodbc通过Windows身份验证连接SQL Server数据库

问题原因

你遇到的报错是由于连接串身份验证参数配置与Azure SQL Database的适配性问题导致的:
Trusted_Connection=Yes参数仅适用于本地部署SQL Server的原生Windows集成认证场景,无法直接用于Azure SQL Database的身份验证,因此会触发空用户身份校验失败的18456错误。

解决方法

你需要根据使用的身份验证方式修改连接串的身份验证参数:

  • 如果你要使用和SSMS一致的无密码Windows身份验证(Azure AD集成Windows认证):
    需将连接串中Trusted_Connection=Yes替换为Authentication=ActiveDirectoryIntegrated,修改后的代码如下:
import pyodbc 

conndev = pyodbc.connect('Driver={ODBC Driver 17 for SQL Server};'
                  'Server=server124.database.windows.net,1433;'
                  'Database=db345;'
                  'Authentication=ActiveDirectoryIntegrated;')

前置要求:运行脚本的Windows账号已同步到Azure AD,且设备已加入Azure AD或完成Azure AD单点登录配置,该账号拥有目标Azure SQL数据库的访问权限。

  • 如果你要使用和SSMS一致的Azure Active Directory - Universal with MFA身份验证:
    可将身份验证参数设为ActiveDirectoryInteractive,运行脚本时会自动弹出登录窗口完成MFA校验,代码示例如下:
import pyodbc 

conndev = pyodbc.connect('Driver={ODBC Driver 17 for SQL Server};'
                  'Server=server124.database.windows.net,1433;'
                  'Database=db345;'
                  'Authentication=ActiveDirectoryInteractive;')
注意事项
  • 需确保本地安装的ODBC Driver 17 for SQL Server为最新版本,旧版本可能不支持上述Azure AD身份验证参数
  • 如需使用SQL账号密码认证,保留原来的UID、PWD参数及Trusted_Connection=No配置即可正常使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:27:04