【发布时间】:2022-01-26 15:58:37
【问题描述】:
我有一个 Azure SQL 数据库,我正在尝试创建一个外部数据源以将 CSV 数据从 Blob 存储加载到数据库。
我使用以下查询创建了一个数据库范围的凭据。
CREATE DATABASE SCOPED CREDENTIAL [https://forecaststorage01.blob.core.windows.net]
WITH IDENTITY = 'SHARED ACCESS KEY',
SECRET = 'SAS Token';
然后创建了一个外部数据源,
CREATE EXTERNAL DATA SOURCE [demodata]
WITH (
TYPE = BLOB_STORAGE,
LOCATION = 'https://forecaststorage01.blob.core.windows.net',
CREDENTIAL = [https://forecaststorage01.blob.core.windows.net]
);
当我尝试运行以下查询时,
SET NOCOUNT ON;
BULK INSERT input.RawData
FROM 'csv-data/egypt_sales_data.csv'
WITH (DATA_SOURCE = 'demodata',
FORMAT = 'CSV');
它说
“无法执行查询。错误:找不到凭据“https://forecaststorage01.blob.core.windows.net”,因为它不存在或您没有权限。'
然后我已使用以下查询向用户“dbo”授予对数据库范围凭据的访问权限,
GRANT CONTROL ON DATABASE SCOPED CREDENTIAL::[https://forecaststorage01.blob.core.windows.net] TO [dbo]
然后我再次尝试批量插入。但它仍然显示错误,
“无法执行查询。错误:找不到凭据“https://forecaststorage01.blob.core.windows.net”,因为它不存在或您没有权限。 "
为什么我无法访问数据库范围内的凭据?
【问题讨论】:
标签: sql-server azure azure-sql-database bulkinsert