gpt4 book ai didi

sql-server - 找不到凭据,因为它不存在或您没有权限 - Azure SQL Server

转载 作者:行者123 更新时间:2023-12-02 23:36:31 24 4
gpt4 key购买 nike

我有一个 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”,因为它不存在或您没有权限。”

为什么我无法访问数据库范围的凭据?

最佳答案

如果您尝试在 Azure SQL 上运行第一条语句,您应该会收到错误:

'CREATE CREDENTIAL' is not supported in this version of SQL Server.

您必须使用CREATE DATABASE SCOPED CREDENTIAL命令。而且IDENTITY必须SHARED ACCESS SIGNATURE而不是“key”:

CREATE DATABASE SCOPED CREDENTIAL [https://forecaststorage01.blob.core.windows.net] 
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'SAS Token';

这应该可以解决您的问题

关于sql-server - 找不到凭据,因为它不存在或您没有权限 - Azure SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70866397/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com