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

pyodbc连接Azure数据库报URI匹配错误 SSMS连接报Windows登录不支持

问题根因
  • Azure SQL Database 原生不支持本地 Active Directory 域账号的Windows集成登录,你通过SSMS返回的Windows logins are not supported in this version of SQL Server是底层真实错误,pyodbc返回的URI匹配报错属于ODBC 17驱动转发AD认证错误时的异常格式输出,和Web场景的同类报错没有关联。
  • 你当前连接字符串中使用的Authentication=ActiveDirectoryPassword参数要求UID不能带DOMAIN\前缀,且对应账号必须是已同步到Azure AD的托管账号或Azure AD原生账号,不能直接使用本地未同步的域账号。
修复方案

方案1:使用Azure AD账号密码认证

如果你的账号已同步到Azure AD,或本身是Azure AD原生账号,直接修改连接字符串即可:

Driver=ODBC Driver 17 for SQL Server;Server=company.database.windows.net;Authentication=ActiveDirectoryPassword;Database=My_Database;UID=user@company.com;PWD=********;

注意事项:

  • UID必须填写Azure AD的用户主体名称(UPN),通常为邮箱格式,不要加域前缀
  • 提前确认该账号已被设置为Azure SQL Server的Azure AD管理员,或已在目标库中创建了对应Azure AD用户的权限映射

方案2:使用SQL身份验证(适配性最高)

如果不需要强制使用AD认证,直接使用SQL账号登录即可,连接字符串修改为:

Driver=ODBC Driver 17 for SQL Server;Server=company.database.windows.net;Database=My_Database;UID=你的SQL账号;PWD=********;Encrypt=yes;

使用前需要提前在Azure SQL中创建对应SQL认证账号,同时配置服务器IP白名单允许你的客户端访问。

方案3:必须使用本地域账号的替代方案

如果业务要求必须使用本地域账号做Windows身份验证,需要将数据库迁移到Azure SQL Managed Instance(托管实例),只有该产品版本支持本地AD的Windows登录认证,单实例Azure SQL Database不支持该特性。

内容的提问来源于stack exchange,提问作者half of a glazier

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:15:04