运行 从 SQL 按需端点查询时 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 按需端点。
我在 SSMS 中所做的是运行连接到端点后的以下命令:
CREATE DATABASE [Demo2];
CREATE EXTERNAL DATA SOURCE AzureBlob WITH ( LOCATION 'wasbs://<container>@<storageaccount>.blob.core.windows.net/' )
-
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-signature
我明白问题出在哪里了。我还没有尝试过 Armando 的建议。
首先,我必须转到容器并编辑 IAM 策略,以便为我的 Active Directory 登录提供 Blob 数据贡献者角色。授予访问权限的用户将是您用于登录门户的电子邮件地址。
之后我不得不 re-connect 到 SSMS 中的 On-Demand 端点。确保通过 Azure AD - MFA 选项登录。最初我使用的是 On-Demand 端点用户名和密码,该用户名和密码未被授予对容器的 Blob 数据贡献者角色的访问权限。
https://docs.microsoft.com/en-us/azure/synapse-analytics/sql/resources-self-help-sql-on-demand
我正在尝试从存储在 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 按需端点。
我在 SSMS 中所做的是运行连接到端点后的以下命令:
CREATE DATABASE [Demo2];
CREATE EXTERNAL DATA SOURCE AzureBlob WITH ( LOCATION 'wasbs://<container>@<storageaccount>.blob.core.windows.net/' )
-
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-signature
我明白问题出在哪里了。我还没有尝试过 Armando 的建议。
首先,我必须转到容器并编辑 IAM 策略,以便为我的 Active Directory 登录提供 Blob 数据贡献者角色。授予访问权限的用户将是您用于登录门户的电子邮件地址。
之后我不得不 re-connect 到 SSMS 中的 On-Demand 端点。确保通过 Azure AD - MFA 选项登录。最初我使用的是 On-Demand 端点用户名和密码,该用户名和密码未被授予对容器的 Blob 数据贡献者角色的访问权限。
https://docs.microsoft.com/en-us/azure/synapse-analytics/sql/resources-self-help-sql-on-demand