首页 > 解决方案 > 关于 Azure Synapse Analytics 无服务器池连接和查询的 ADLS 的访问控制问题

问题描述

我有一个 Azure Analytics 无服务器池(我是管理员)我还可以通过 ACL(访问控制列表)访问 ADLS Gen-2 以获取特定的文件夹列表 [在下图中 - 所有绿色框代表我的访问权限有 ]

在此处输入图像描述

我在 Synapse Studio(无服务器池)上的 SQL 语句下运行

SELECT TOP 100 * FROM OPENROWSET(BULK 'https://SAFINCAL.dfs.core.windows.net/Container-2/Post-Sale/shipments/2021/*.parquet', FORMAT='PARQUET') AS [结果]

我收到以下错误消息

在第 1 行开始执行查询

无法打开文件“https://SAFINCAL.dfs.core.windows.net/Container-2/Post-Sale/shipments/2021/*.parquet”,因为它不存在或被其他进程使用。访问本文以了解有关此错误的更多信息总执行时间:00:00:12.269

文章指向https://docs.microsoft.com/en-us/azure/synapse-analytics/sql/resources-self-help-sql-on-demand#query-fails-because-file-cannot-be-打开

文章中提出的解决方案是让自己成为“Storage Blob Data Contributor”。我的问题是——如果我让自己成为“存储 Blob 数据贡献者”——那么我最终可能会获得对整个容器的访问权限,这违背了在文件夹级别授予 ACL 访问权限的目的(绿色突出显示的框)

在此处输入图像描述

这是正确的理解吗?如果是 - 我如何确保我仍然可以从 Azure Synapse Analytics 无服务器池中查询“shipments”文件夹中的数据,而无需将自己添加为整个容器/存储帐户的参与者/读者

谢谢

标签: serverlessazure-data-lakeazure-synapse

解决方案


如果您使用 ACL,您还需要对容器至少拥有“X”权限。


推荐阅读