Azure Synapse触发器运行时读取ADLS Gen2遇身份验证错误
Azure Synapse笔记本直接运行与管道调用的授权差异及权限问题解决
直接运行笔记本和通过管道调用的授权方式确实存在核心差异,具体如下:
直接运行笔记本的身份
在Synapse Studio里手动运行笔记本时,用的是你当前登录的Azure AD账号身份。你的账号应该已经被授予了ADLS Gen2存储账户的访问权限(比如Storage Blob Data Contributor这类RBAC角色,或者容器/文件的ACL权限),所以能正常读取数据。管道调用笔记本的身份
通过Synapse管道触发笔记本时,默认使用的是Synapse工作区的系统托管标识(一种Azure AD服务主体)。这个身份默认没有ADLS Gen2的访问权限,这就是出现权限拒绝错误的原因。如果管道里手动指定了用户分配的托管标识或其他服务主体,那就是用这个指定的身份来访问存储,同样需要对应权限。
解决办法
- 给Synapse工作区的系统托管标识授予ADLS Gen2存储账户的合适RBAC角色:比如仅读取数据就加
Storage Blob Data Reader,需要读写就加Storage Blob Data Contributor。 - 如果用了用户分配的托管标识或服务主体,确保该身份也被赋予了对应的ADLS Gen2权限。
- 若ADLS Gen2启用了分层命名空间,除了RBAC权限外,还要检查容器或具体文件的ACL设置,给对应的身份配置访问权限。
内容的提问来源于stack exchange,提问作者J. Doe
相关产品推荐
相关产品推荐

