[英]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 中所做的是在連接到端點后運行以下命令:
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 令牌,如果需要,它的語法是什么?
我想出了問題所在。 我還沒有嘗試過阿曼多的建議。
首先,我必須轉到容器並編輯 IAM 策略,以便為我的 Active Directory 登錄提供 Blob 數據貢獻者角色。 授予訪問權限的用戶將是您登錄門戶的電子郵件地址。
之后,我不得不重新連接到 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.