基本上每次我尝试连接到 AWS 存储桶以获取 SQL Server 2022 中的 parquet 文件时,都会收到权限错误
找不到凭证“s3_dc”,因为它不存在或您没有权限。
代码:
exec sp_configure @configname = 'polybase enabled', @configvalue = 1;
RECONFIGURE;
exec sp_configure @configname = 'polybase enabled';
CREATE DATABASE SCOPED CREDENTIAL s3_dc
WITH IDENTITY = 'IDENTITY',
SECRET = 'SECRET' ;
CREATE EXTERNAL DATA SOURCE s3_ds
WITH (LOCATION = 's3://s3.amazonaws.com',
CREDENTIAL = s3_dc );
GO
SELECT *
FROM OPENROWSET(BULK 'buckett/haz/data/data.parquet',
FORMAT = 'PARQUET',
data_source = 's3_ds') AS [cc];
这是错误消息:
找不到凭证“s3_dc”,因为它不存在或您没有权限。
我尝试禁用防火墙,并尝试以 SQL Server 用户和 Windows 用户身份登录,但仍然出现相同的错误。
使用以下命令检查您的范围凭据是否存在
SELECT * FROM sys.database_scoped_credentials;
如果他们仍然面临问题,您需要向您的用户授予访问数据库范围的权限,因此您需要将其包含在语句中:
GRANT REFERENCES ON DATABASE SCOPED CREDENTIAL::[{credential_name}] TO [{user}];
有关更多信息,请参阅此文档