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

Azure Synapse链接服务配置问题:托管身份连接自建MSSQL失败

问题解决指南:Synapse链接服务配置(托管身份连接自建MSSQL)

一、为什么IAM界面看不到Synapse相关角色?

Synapse存在两套权限管控体系,需区分清楚:

  • Azure RBAC:作用于订阅/资源组/Synapse工作区级,在Azure门户的Synapse工作区「访问控制(IAM)」页面配置。若在此处搜不到Synapse角色,检查:
    • 是否打开的是Synapse工作区的IAM页面,而非订阅或资源组的IAM页面;
    • 清除角色搜索框的过滤条件,直接输入「Synapse」关键词,即可找到如「Azure Synapse Administrator」「Azure Synapse Contributor」等角色。
  • Synapse专用RBAC:作用于Synapse工作区内部(如管道、SQL池等资源),需在Synapse Studio内配置:进入「管理」→「访问控制」,这里能看到Synapse专属角色(如Synapse Administrator、Synapse SQL Administrator等)。

你遇到的Microsoft.Synapse/workspaces/read权限需求,属于Synapse内部RBAC范畴,需在Synapse Studio内配置。

二、解决两个错误,完成托管身份链接配置

1. 修复Unauthorized错误(缺少Microsoft.Synapse/workspaces/read权限)

即使你有订阅级所有者权限,Synapse内部RBAC可能未同步分配权限,需手动配置:

  • 打开Synapse Studio,进入「管理」→「访问控制」;
  • 点击「添加角色分配」,选择「Synapse Contributor」或「Synapse Administrator」角色,将你的账号添加为成员;
  • 保存后等待1-2分钟让权限生效,再尝试创建链接服务。

2. 修复SqlFailedToConnect错误(托管身份登录失败)

系统分配托管身份连接自建MSSQL,需完成以下步骤:

步骤1:在自建MSSQL中创建托管身份的登录名

使用MSSQL管理工具(如SSMS)连接到你的自建服务器,执行以下SQL:

-- 创建登录名,名称必须和Synapse工作区名称完全一致
CREATE LOGIN [你的Synapse工作区名称] FROM EXTERNAL PROVIDER;

步骤2:在目标数据库中创建用户并授予权限

继续执行SQL:

USE [你的目标数据库名称];
-- 创建数据库用户,关联刚才的登录名
CREATE USER [你的Synapse工作区名称] FOR LOGIN [你的Synapse工作区名称];
-- 授予读取数据的权限(根据需求调整,如db_datawriter用于写入)
ALTER ROLE db_datareader ADD MEMBER [你的Synapse工作区名称];

步骤3:确保MSSQL防火墙允许Synapse访问

  • 除了开启「允许Azure服务和资源访问此服务器」,还需将Synapse工作区的出站IP地址添加到MSSQL防火墙白名单:
    1. 在Azure门户进入Synapse工作区,点击「网络」→「出站IP」,复制所有IP地址;
    2. 进入自建MSSQL服务器的「防火墙和虚拟网络」设置,添加这些IP地址到允许列表。

步骤4:验证链接服务配置

创建链接服务时:

  • 服务器名称填写自建MSSQL的公网IP或可访问的域名;
  • 认证方式选择「系统分配托管身份」;
  • 数据库名称填写目标数据库的正确名称;
  • 点击「测试连接」验证是否成功。

内容的提问来源于stack exchange,提问作者Ishwar Jangid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 15:08:26