无法将托管身份添加到Synapse池

问题描述

我正在通过Synapse工作室运行Azure Synapse工作流,并遇到此错误:

{
    "errorCode": "2200","message": "ErrorCode=FailedDbOperation,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Please make sure SQL DW has access to ADLS Gen2 account,Source=Microsoft.DataTransfer.ClientLibrary,''Type=System.Data.SqlClient.SqlException,Message=Managed Service Identity has not been enabled on this server. Please enable Managed Service Identity and try again.,Source=.Net SqlClient Data Provider,SqlErrorNumber=105096,Class=16,ErrorCode=-2146232060,State=1,Errors=[{Class=16,Number=105096,},],'","failureType": "UserError","target": "Copy data1","details": []
}

如果我进入Azure Powershell并检查池,则可以看到null中的Identity条目证实了这一点:

ResourceGroupName        : workspacemanagedrg-c6475066-bbe3-4c02-866c-7556d5e92e0b
ServerName               : <mydw>
Location                 : eastus2
SqlAdministratorLogin    : <myadmin>
SqlAdministratorPassword : <mypw>
ServerVersion            : 12.0
Tags                     : {}
Identity                 :
FullyQualifiedDomainName : <mydw>.database.windows.net

有两件事与此有关:

  1. 我的Synapse工作空间已经具有与其关联的托管身份:

    enter image description here

  1. 按照this question中的说明,尝试运行Powershell命令时,我获得的权限被拒绝

Set-AzSqlServer:对象ID为'guid'的客户端'me@contoso.com'有权对范围'/ subscriptions / mysubscription / resourceGroups / myrg / providers /执行操作'Microsoft.Sql / servers / write' Microsoft.Sql / servers / mydw';但是,访问被拒绝是因为在名称为'c6475066-bbe2-4c03-866c-7556d5e92e9b'和ID为'c6475066bbe24c03866c7556d5e92e9b'的拒绝分配中。

我已验证此托管身份确实可以访问我的数据源(ADLS Gen2),并且当我在Studio中测试连接时,它们都可以正常工作。

如何将Synapse工作区中的托管身份分配给我创建的sql池?

解决方法

我遇到了同样的问题,并打开了支持案例120073024005140。我得到的答案是,这种Polybase或COPY INTO with MSI方案在Synapse工作区中尚不可用,但它即将推出。现在,您必须使用其他类型的身份验证,例如存储帐户密钥身份验证,并且必须将存储帐户防火墙保持打开状态。或者,您也可以使用可以使用此功能的旧版“ Azure Synapse Analytics(以前称为SQL DW)” SQL池(没有Synapse工作区,也没有Synapse Studio)。

解决后,我将更新此答案。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...