我正在通过 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,State=1,Message=Managed Service Identity has not been enabled on this server. Please enable Managed Service Identity and try again.,},],'",
"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
这有两点很特别:
- 尝试运行 Powershell 命令时,我得到一个权限被拒绝,如本问题所述
Set-AzSqlServer:对象 ID 为“guid”的客户端“me@contoso.com”有权在范围“/subscriptions/mysubscription/resourceGroups/myrg/providers/Microsoft.Sql”上执行操作“Microsoft.Sql/servers/write” /服务器/mydw'; 但是,由于在“/subscriptions/mysubscription/resourceGroups/myrg”范围内的名称为“c6475066-bbe2-4c03-866c-7556d5e92e9b”和 ID 为“c6475066bbe24c03866c7556d5e92e9b”的拒绝分配,访问被拒绝。
我已验证此托管身份确实可以访问我的数据源 (ADLS Gen2),并且当我在工作室中测试连接时,它们都可以正常工作。
如何将托管标识从 Synapse 工作区分配到我创建的 sql 池?