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

使用Python通过Active Directory密码连接Azure SQL Server报错求助

解决pyodbc连接Azure SQL Server时的Active Directory密码认证问题

首先,你遇到的这个错误根源很明确:ODBC Driver 13 for SQL Server依赖一个叫Microsoft Online Services Sign-In Assistant的组件来完成Azure AD密码认证,要么这个组件没安装,要么安装出现了损坏。不过更省心的解决方式是直接升级ODBC驱动——从ODBC Driver 17开始,微软移除了这个额外依赖,对Azure AD认证的支持也更稳定完善。

下面是具体的解决步骤和正确的连接方式:

第一步:升级ODBC驱动

卸载你当前的ODBC Driver 13,安装ODBC Driver 17 for SQL Server(或更高版本)。这个驱动无需额外安装Sign-In Assistant组件,就能直接支持Azure AD密码认证。

第二步:修正连接代码

你的代码有几个可以优化的点,同时适配新驱动:

  • 驱动名称更新为{ODBC Driver 17 for SQL Server}
  • 用f-string拼接连接字符串,避免手动拼接时出现语法错误
  • 确保服务器名称是完整的Azure SQL地址(格式:<ServerName>.database.windows.net)
  • 添加异常处理,方便排查后续可能出现的问题

修正后的完整代码:

import pyodbc

def main():
    # 注意:服务器名称必须带上.database.windows.net后缀
    serverName = "<ServerName>.database.windows.net"
    dbName = "<DatabaseName>"
    # 用户名格式:Azure AD域用户需用user@your-domain.com,内置用户直接用用户名
    User_name = '<UserName>'
    password = '<Password>'
    driver = '{ODBC Driver 17 for SQL Server}'
    
    # 用f-string拼接连接字符串,更清晰易维护
    conn_str = f"""
        DRIVER={driver};
        SERVER={serverName};
        DATABASE={dbName};
        UID={User_name};
        PWD={password};
        Authentication=ActiveDirectoryPassword
    """
    
    try:
        connection = pyodbc.connect(conn_str)
        cursor = connection.cursor()
        cursor.execute("select * from dbo.test;")
        allData = cursor.fetchall()
        
        # 遍历输出查询结果
        for row in allData:
            print(row)
    except pyodbc.Error as e:
        print(f"操作出错: {e}")
    finally:
        # 确保连接最终被关闭
        if 'connection' in locals() and connection:
            connection.close()

if __name__ == "__main__":
    main()

额外注意事项

  • 确认你的Azure SQL Server已经启用了Azure AD认证,并且该用户被授予了目标数据库的访问权限(比如db_datareader角色)。
  • 检查Azure SQL的防火墙设置:确保你的客户端IP地址被添加到SQL Server的允许列表中,否则会被拒绝连接。
  • 用户名格式要准确:如果是Azure AD域用户,必须使用user@your-domain.com的完整格式;如果是Azure AD内置管理员用户,直接使用用户名即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:21:43