Azure Synapse Pipeline批量加载ADLS文件至SQL池报错:拒绝访问(错误码5)
问题解答
不需要为Synapse托管标识配置目标SQL池数据库内的权限,你的权限问题出在存储账户的访问身份验证环节,而非SQL池内的权限。以下是具体排查和解决步骤:
修改COPY INTO语句,指定使用托管身份验证
你当前的COPY INTO语句未指定身份验证方式,默认会使用执行该语句的用户身份访问存储,而非Synapse托管标识。需要添加CREDENTIAL参数明确使用托管身份:COPY INTO [RawStaged].[Audit_PatientAudit_E8EBCE80] FROM 'https://storageaccountXXX.blob.core.windows.net/versioner/inbox/landing/abcdef/XXXX-E619-40CA-B45F-9C3AC0328143/20221122105610/bulk_75686_Audit_PatientAudit_20221122105610_ABCDEF-GGGH-44E8-95C5-75D70EA9A45DF.csv' WITH ( FIRSTROW = 2, CREDENTIAL = (IDENTITY = 'Managed Identity') );确认托管专用端点的有效性
- 检查创建的托管专用端点是否针对存储账户的Blob服务,且已被存储账户侧批准。
- 确保Synapse托管虚拟网络未配置阻止存储访问的规则。
验证RBAC权限范围
确认Storage Blob Data Contributor角色的分配范围覆盖了目标Blob所在的容器或具体路径,避免因权限范围过小导致访问被拒。检查存储账户防火墙设置
如果存储账户启用了防火墙,需确保允许Synapse托管虚拟网络的流量通过;若使用托管专用端点,存储账户防火墙应设置为仅允许专用端点访问,同时确认未阻止Synapse的流量。
内容的提问来源于stack exchange,提问作者Ian Carrick
相关产品推荐
相关产品推荐

