当前位置: 首页 > 知识库问答 >
问题:

无法使用Azure数据块访问已装载的Azure数据湖存储

梅跃
2023-03-14

我正在使用Azure数据库。使用Microsoft学习网站上指定的文档,我设法将BLOB存储(ADLS Gen2)挂载到我的数据库。

但是,当我尝试列出已装入的存储的内容时,我收到以下错误:

ExecutionError: An error occurred while calling z:com.databricks.backend.daemon.dbutils.FSUtils.ls.
: GET https://xxxxxxxxxxxxx.dfs.core.windows.net/xxxxxxx?resource=filesystem&maxResults=5000&timeout=90&recursive=false
StatusCode=403
StatusDescription=This request is not authorized to perform this operation using this permission.
ErrorCode=AuthorizationPermissionMismatch

我已经检查了权限,我的Service主体被分配了角色“STORAGE BLOB DATA CONTRIBUTOR”,它允许对我的存储容器进行R/W访问。

任何人都知道我错过了哪个部分来使它工作?将不胜感激。

共有1个答案

闻人梓
2023-03-14

刚刚找到了解决我自己问题的html" target="_blank">方法。

根本原因是没有在 Azure 存储容器本身上设置权限(尽管在 Azure 门户中,一切看起来都正常)。

我为解决此问题所做的工作:在本地计算机上下载并安装Azure存储资源管理器

    < li >使用以下url在您的本地计算机上下载并安装Azure Storage Explorer:https://Azure . Microsoft . com/en-us/features/Storage-Explorer/ < li >打开Azure门户,启动Azure云壳。 < li >使用以下命令检索您的应用程序ID(服务主体)的对象ID。不幸的是,在撰写本文时,您无法直接从门户中检索到它。命令:az ad sp show - id应用程序ID < li >从结果集中复制显示的对象ID。 < li >在Azure Storage Explorer中右键单击您的存储容器,选择“管理访问...” < li >粘贴您的对象ID,并分配适当的权限。 < li >保存并重试Databricks笔记本中的代码。

那对我起了作用。

 类似资料:
  • 那么,如果仍然需要存储帐户访问密钥,服务帐户的目的是什么 还有一个主要问题-是否可以完全删除存储帐户访问密钥并仅使用服务主体?

  • 我正在尝试将一个blob存储从我的存储帐户映射到我的databricks集群。我正在跟踪这个链接,显然我只需要在我的笔记本上执行这段代码: 代码蟒蛇: 我被困在参数中:< code>(scope = " 在Database ricks CLI上尝试过:

  • 我是 azure databricks 的新手。我已经在scala中编写了一个示例火花程序,通过下面的查询加载到azure sql中。我收到错误 。有人可以帮我这个 错误消息---- com.microsoft.sqlserver.jdbc.SQLServerException:与主机b63da5ce2d2d.tr27.northeurope1-a.worker.database.windows.

  • 我正在尝试从Azure函数访问存储帐户。但是在尝试检索文件时收到403错误。我看不出为什么会出现此错误有任何问题。 让我解释一下设置。 1-Azure function app位于美国东部2-Azure blob位于中南部3-Azure blob启用了防火墙(我已启用Azure服务可以访问)4-我还将function app的IP列入了白名单。(properties virtual IP)5-Az

  • 我无法从Databrikcs访问Azure Data Lake Storage。 我没有高级Azure Databricks服务。我正在尝试按照最新的文档直接访问ADLS Gen 2:https://learn . Microsoft . com/en-us/azure/data bricks/data/data-sources/azure/adls-Gen 2/azure-data lake-G

  • 我有一个Xamarin。窗体使用Azure ADB2C身份验证的应用程序。虽然我可以在工作中进行签名,但我仍然需要以某种方式获取用户信息(如用户名和存储在AAD中的其他属性),以便在应用程序中显示它。为了实现这一目标,我找不到任何合适的留档。还有谁有类似的问题或者知道我应该找什么吗?