首页 > 解决方案 > 在使用暂存 Blob 存储 + Polybase 到 Azure 数据仓库的数据工厂中运行管道时出现管理器身份错误

问题描述

尝试使用 Polybase + 启用暂存 Blob 存储将数据从 Azure SQL 提取到 Azure DW 数据库时,我收到此错误消息。

此服务器上未启用托管服务标识。请启用托管服务标识并重试。

我尝试创建一个托管身份用户,将其分配给 Web 服务并授予其权限,将该用户链接到在数据库中具有所有者权限的 AAD 组,但它不起作用。

在此处输入图像描述

标签: azure-data-factorystagingazure-sql-data-warehousepolybase

解决方案


您的接收器、源和 blob 是否属于同一订阅?由于错误是抱怨 SQDWH 访问,我认为您需要检查一下。

https://docs.microsoft.com/en-us/azure/data-factory/connector-azure-sql-data-warehouse#managed-identity

请让我知道情况如何。

我假设您在接收端使用身份验证类型 = 托管标识。

我们需要给予 ADF 足够的权限。导航到 Azure 门户上的以下内容。仪表板->SQL 数据仓库-><> - 查询编辑器(预览)

CREATE USER [your ADF Name ] FROM EXTERNAL PROVIDER;
EXEC sp_addrolemember db_owner, [your ADF Name];

现在执行管道,它应该可以正常工作。

我想重现您的问题,因此我故意删除了 ADF 的权限

EXEC sp_droprolemember db_owner, [your ADF Name];

我看到以下错误(这不是您报告的原因)

{
    "errorCode": "2200",
    "message": "ErrorCode=FailedDbOperation,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Error happened when loading data into SQL Data Warehouse.,Source=Microsoft.DataTransfer.ClientLibrary,''Type=System.Data.SqlClient.SqlException,Message=User does not have permission to perform this action.,Source=.Net SqlClient Data Provider,SqlErrorNumber=15247,Class=16,ErrorCode=-2146232060,State=1,Errors=[{Class=16,Number=15247,State=1,Message=User does not have permission to perform this action.,},],'",
    "failureType": "UserError",
    "target": "Copy data1",
    "details": []
}

我认为您的管道还有其他问题。


推荐阅读