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

如何在Azure Databricks中用AD集成认证连接SQL Server

在Azure Databricks Notebook中通过AD集成认证连接SQL Server的Python实现

方法1:使用pyodbc库(纯Python原生查询)

适合执行小型SQL查询并直接处理结果集,需确保集群已安装pyodbc和SQL Server ODBC驱动(Databricks Runtime通常预装,若缺失可通过%pip install pyodbc安装,需确认自身是否有安装权限)。

代码示例:

import pyodbc

# 配置SQL Server基础信息
server = "你的SQL服务器名称.database.windows.net"
database = "目标数据库名称"

# 构建AD集成认证的连接字符串
conn_str = f"""
DRIVER={{ODBC Driver 17 for SQL Server}}
SERVER={server}
DATABASE={database}
Authentication=ActiveDirectoryIntegrated
"""

# 建立连接
conn = pyodbc.connect(conn_str)

# 创建游标并执行查询
cursor = conn.cursor()
cursor.execute("SELECT * FROM 目标表名称")

# 读取并输出查询结果
rows = cursor.fetchall()
for row in rows:
    print(row)

# 关闭资源
cursor.close()
conn.close()

方法2:使用Spark JDBC(大数据场景适配)

适合处理大规模数据并与Databricks DataFrame集成,支持直接读取SQL表为DataFrame或写入数据到SQL表。

代码示例:

# 配置SQL Server基础信息
server = "你的SQL服务器名称.database.windows.net"
database = "目标数据库名称"
table_name = "目标表名称"

# 构建JDBC连接URL
jdbc_url = f"jdbc:sqlserver://{server}:1433;databaseName={database};encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;"

# 读取SQL表为Spark DataFrame
df = spark.read \
    .format("jdbc") \
    .option("url", jdbc_url) \
    .option("dbtable", table_name) \
    .option("authentication", "ActiveDirectoryIntegrated") \
    .option("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver") \
    .load()

# 展示DataFrame数据
df.display()

关键注意事项

  • 确认Databricks集群网络可访问目标SQL Server,需配置对应防火墙规则或VNet对等连接
  • 当前操作的Databricks用户需通过Azure AD被授予目标SQL数据库的访问权限
  • 使用Spark JDBC时,确保集群已预装SQL Server JDBC驱动,若未预装可通过集群库管理添加

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 16:15:03