繁体   English   中英

从 SQL On-Demand 端点运行查询时出现 SSMS 错误

[英]Error in SSMS when running query from SQL On-Demand endpoint

我试图从存储在 Azure Blob 容器中的 CSV 文件中提取数据,当我尝试查询该文件时,出现错误

File 'https://<storageaccount>.blob.core.windows.net/<container>/Sales/2020-10-01/Iris.csv' cannot be opened because it does not exist or it is used by another process.

该文件确实存在,据我所知,它没有被其他任何东西使用。

我正在使用 SSMS 以及来自 Azure Synapse 的 SQL On-Demand 端点。

我在 SSMS 中所做的是在连接到端点后运行以下命令:

  1. CREATE DATABASE [Demo2];
  2. CREATE EXTERNAL DATA SOURCE AzureBlob WITH ( LOCATION 'wasbs://<container>@<storageaccount>.blob.core.windows.net/' )
  3.  SELECT * FROM OPENROWSET ( BULK 'Sales/2020-10-01/Iris.csv', DATA_SOURCE = 'AzureBlob', FORMAT = '*' ) AS tv1;

我不确定我的问题在哪里或下一步要去哪里。 我在创建外部数据源时搞砸了什么吗? 我是否需要在那里使用 SAS 令牌,如果需要,它的语法是什么?

@Ubiquitinoob44,你需要创建一个数据库凭证: https ://docs.microsoft.com/en-us/azure/synapse-analytics/sql/develop-storage-files-storage-access-control?tabs=shared-access -签名

我想出了问题所在。 我还没有尝试过阿曼多的建议。

首先,我必须转到容器并编辑 IAM 策略,以便为我的 Active Directory 登录提供 Blob 数据贡献者角色。 授予访问权限的用户将是您登录门户的电子邮件地址。

https://docs.microsoft.com/en-us/azure/storage/common/storage-auth-aad-rbac-portal?toc=/azure/synapse-analytics/toc.json&bc=/azure/synapse-analytics/面包屑/toc.json

之后,我不得不重新连接到 SSMS 中的按需端点。 确保通过 Azure AD - MFA 选项登录。 最初我使用的是 On-Demand 端点用户名和密码,它没有被授予访问容器的 Blob Data Contributor 角色的权限。

https://docs.microsoft.com/en-us/azure/synapse-analytics/sql/resources-self-help-sql-on-demand

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM