无法批量加载,因为无法打开文件“ File.csv”。操作系统错误代码5(访问被拒绝。)

问题描述 投票:0回答:1

我在尝试从Azure Sql数据库访问Azure Blob存储并上传单个Blob /图像时遇到以下问题。得到以上。我已经配置了SAS。这是我的发现:

  • 如果容器是公共的,则下面的sql在没有凭据的情况下可以工作
  • 当为私有时,可以通过Blob URL访问Blob从浏览器(在那里使用sas令牌)
  • 如果我尝试通过Azure Sql数据库(相同的令牌)访问它,得到与上面相同的错误:

“执行查询失败。错误:由于无法打开文件” POC.png“,无法批量加载。操作系统错误代码5(访问被拒绝。)”

CREATE DATABASE SCOPED CREDENTIAL MyAzureBlobStorageCredential
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'sv=2018-03-28....'
go
CREATE EXTERNAL DATA SOURCE MyAzureBlobStorage 
WITH ( TYPE = BLOB_STORAGE, 
LOCATION = 'https://poc.blob.core.windows.net/poc-container',
CREDENTIAL = MyAzureBlobStorageCredential); 
go    
INSERT INTO file111 (col2)
SELECT BulkColumn FROM OPENROWSET(
 BULK  'POC.png',
DATA_SOURCE = 'MyAzureBlobStorage',
 SINGLE_BLOB
) AS DataFile;
azure azure-sql-database blob access
1个回答
0
投票

我所做的是:

  • 删除了所有不需要的权限,只保留了“读取和列出”;
  • 确保几天后生成的开始/结束日期时间在过去/将来足够远;
  • 确保{容器} {blobname}的下位/大写相同如容器中的字母;
  • LOCATION末尾没有反斜线

并且有效。任何可能导致上述错误信息的项目符号。

© www.soinside.com 2019 - 2024. All rights reserved.