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

Azure Synapse Notebook中PySpark通过AD集成认证连接Azure SQL DB报错求助

问题分析与解决方案

你遇到的IllegalArgumentException: KrbException: Cannot locate default realm错误,本质是PySpark尝试通过Kerberos协议完成AD集成认证,但Azure Synapse Notebook环境未配置Kerberos默认域。而Synapse连接Azure SQL DB的AD集成认证有专门的实现逻辑,无需依赖本地Kerberos配置,以下是修正后的正确连接方案:

方案1:使用spark.read.format配置AD认证参数

根据你的身份类型(Synapse托管身份/当前AD用户)选择对应配置:

子方案A:用Synapse托管身份(MSI)认证

df = spark.read.format("jdbc") \
    .option("url", "jdbc:sqlserver://<你的SQL服务器名>.database.windows.net:1433;database=<你的数据库名>") \
    .option("dbtable", "<目标表名>") \
    .option("authentication", "ActiveDirectoryMSI") \
    .option("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver") \
    .load()

子方案B:用当前登录用户的AD集成身份认证

df = spark.read.format("jdbc") \
    .option("url", "jdbc:sqlserver://<你的SQL服务器名>.database.windows.net:1433;database=<你的数据库名>") \
    .option("dbtable", "<目标表名>") \
    .option("authentication", "ActiveDirectoryIntegrated") \
    .option("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver") \
    .load()

方案2:拼接jdbcUrl使用spark.read.jdbc方法

同样需要在URL中明确指定AD认证方式,避免触发Kerberos自动协商:

用MSI认证的URL示例

jdbc_url = "jdbc:sqlserver://<你的SQL服务器名>.database.windows.net:1433;database=<你的数据库名>;authentication=ActiveDirectoryMSI"
df = spark.read.jdbc(url=jdbc_url, table="<目标表名>", driver="com.microsoft.sqlserver.jdbc.SQLServerDriver")

用AD集成身份的URL示例

jdbc_url = "jdbc:sqlserver://<你的SQL服务器名>.database.windows.net:1433;database=<你的数据库名>;authentication=ActiveDirectoryIntegrated"
df = spark.read.jdbc(url=jdbc_url, table="<目标表名>", driver="com.microsoft.sqlserver.jdbc.SQLServerDriver")

关键注意事项

  • 若使用MSI认证:需将Synapse工作区的托管身份添加到Azure SQL DB的AD用户/组中,并授予对应数据库权限(如db_datareader)。
  • 若使用交互式AD身份:你的用户账号需拥有Azure SQL DB的访问权限,且当前Notebook会话以该账号登录。
  • 无需手动配置Kerberos域,Synapse环境中AD认证由JDBC驱动的专属逻辑处理,与本地Kerberos配置无关。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 12:15:34