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

Synapse Notebook连接Azure SQL Database报错:缺少connectionstring属性

解决Synapse中系统分配托管标识的Azure SQL链接服务令牌获取错误

当使用系统分配托管标识认证的Azure SQL数据库链接服务时,调用TokenLibrary.getConnectionString()会触发Missing required property 'connectionstring'错误——因为该方法仅适用于存储了显式连接字符串的链接服务,而系统托管标识类型的链接服务不会保存连接字符串,需改用专属的令牌获取方法。

正确代码示例

jdbcUrl = "jdbc:sqlserver://my_server_name.database.windows.net:1433;database=my_db_name;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30"
# 针对Azure SQL资源获取托管标识令牌
token = TokenLibrary.getAccessToken("https://database.windows.net/")

pushdown_query = "(SELECT col1 FROM my_table_name) as tbl"
connectionProperties = {
    "driver": "com.microsoft.sqlserver.jdbc.SQLServerDriver",
    "accessToken": token
}
df = spark.read.jdbc(url=jdbcUrl, table=pushdown_query, properties=connectionProperties)
display(df)

关键注意事项

  • 确认Synapse工作区的系统分配托管标识已被授予目标Azure SQL数据库的权限(如db_datareader)
  • 链接服务的认证类型必须设置为系统分配托管标识,且已正确关联到目标SQL服务器/数据库
  • getAccessToken的资源参数固定为https://database.windows.net/,不可修改或省略

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 11:04:56