从 databricks 连接到 azure data lake gen 2 时出现访问问题
access issue while connecting to azure data lake gen 2 from databricks
我在尝试使用服务主体和 OAuth 2.0 从数据块连接到 gen2 数据湖时遇到以下访问问题
执行的步骤:Reference article
- 创建了新的服务主体
- 从具有参与者角色访问权限的 Azure 存储帐户 IAM 提供对此服务主体的必要访问权限。
- 已在数据块和存储帐户上启用防火墙和专用端点连接。
状态码=403
StatusDescription=此请求无权使用此权限执行此操作。
ErrorCode=AuthorizationPermissionMismatch
ErrorMessage=此请求无权使用此权限执行此操作。
然而,当我尝试通过访问密钥连接时,它运行良好,没有任何问题。现在我开始怀疑我步骤中的 #3 是否是此访问问题的原因。如果是这样,我是否需要提供任何额外的访问权限才能使其成功?有什么想法吗?
When performing the steps in the Assign the application to a role, make sure to assign the Storage Blob Data Contributor role to the service principal.
Repro: 我已向服务主体提供所有者权限并尝试 运行 “dbutils.fs.ls("mnt/azure/")
”,返回与上述相同的错误消息。
解决方案:现在将 Storage Blob Data Contributor 角色分配给服务主体。
最终,在将 Storage Blob Data Contributor 角色分配给服务主体后,能够获得没有任何错误消息的输出。
详情请参考“Tutorial: Azure Data Lake Storage Gen2, Azure Databricks & Spark”。
我在尝试使用服务主体和 OAuth 2.0 从数据块连接到 gen2 数据湖时遇到以下访问问题
执行的步骤:Reference article
- 创建了新的服务主体
- 从具有参与者角色访问权限的 Azure 存储帐户 IAM 提供对此服务主体的必要访问权限。
- 已在数据块和存储帐户上启用防火墙和专用端点连接。
状态码=403
StatusDescription=此请求无权使用此权限执行此操作。
ErrorCode=AuthorizationPermissionMismatch
ErrorMessage=此请求无权使用此权限执行此操作。
然而,当我尝试通过访问密钥连接时,它运行良好,没有任何问题。现在我开始怀疑我步骤中的 #3 是否是此访问问题的原因。如果是这样,我是否需要提供任何额外的访问权限才能使其成功?有什么想法吗?
When performing the steps in the Assign the application to a role, make sure to assign the Storage Blob Data Contributor role to the service principal.
Repro: 我已向服务主体提供所有者权限并尝试 运行 “dbutils.fs.ls("mnt/azure/")
”,返回与上述相同的错误消息。
解决方案:现在将 Storage Blob Data Contributor 角色分配给服务主体。
最终,在将 Storage Blob Data Contributor 角色分配给服务主体后,能够获得没有任何错误消息的输出。
详情请参考“Tutorial: Azure Data Lake Storage Gen2, Azure Databricks & Spark”。