为啥有些用户可以在 Synapse 工作区中看到链接的 Azure Data Lake Gen 2 资源,而其他用户却不能?

Posted

技术标签:

【中文标题】为啥有些用户可以在 Synapse 工作区中看到链接的 Azure Data Lake Gen 2 资源,而其他用户却不能?【英文标题】:Why can some users see in a Synapse Workspace see a Linked Azure Data Lake Gen 2 resource and others can't?为什么有些用户可以在 Synapse 工作区中看到链接的 Azure Data Lake Gen 2 资源,而其他用户却不能? 【发布时间】:2021-10-02 16:09:04 【问题描述】:

最近,我使用工作区的托管标识在 Synapse 工作区中创建了第二个链接 Azure Data Lake Storage Gen2,并将其(与需要分析它的人员一起)添加为存储 Blob 数据阅读器。

我无权访问实际资源,但链接后我可以在工作区中看到新的链接 Azure Data Lake Storage Gen2 资源。但是,在工作区中也具有 Synapse 管理员权限(并且对实际资源具有读取权限)的 2 个用户甚至无法在工作区中看到新的链接数据湖。他们都拥有 Workspace 资源本身的 Reader 权限。我拥有工作区的贡献者权限,即使将自己从防火墙白名单中删除,我也可以看到关联数据湖。

有什么想法会导致这种行为吗?

【问题讨论】:

【参考方案1】:

向 Synapse 管理员或用户授予工作区上的 Azure 参与者角色。

如果工作区创建者不是 ADLS Gen2 存储帐户的所有者,则 Azure Synapse 不会将存储 Blob 数据参与者角色分配给托管标识。

验证存储 Blob 数据参与者角色是否已分配给托管标识

下面使用 IAM 对工作区的存储帐户进行角色分配(在您的情况下,用于第二个链接的 DLS)

参考:Grant Synapse administrators the Azure Contributor role on the workspace

【讨论】:

以上是关于为啥有些用户可以在 Synapse 工作区中看到链接的 Azure Data Lake Gen 2 资源,而其他用户却不能?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Synapse 无法处理我的查询?

为啥这个 T-SQL 查询在 Synapse 中不起作用?

我正在尝试在 azure synapse 中创建链接服务(休息),但我没有授权

为啥有些 C 程序在 debug 中可以工作,但在 release 中不行?

为啥这个基本链表可以在 MacOS 上工作,但在 Linux 上会出现段错误

为啥有些 Enumerable 可以在 foreach 中更改,而有些则不能?