如何在Azure SQL数据库中向用户授予数据库范围凭据

3
我有一个Azure SQL数据库,我们需要从Azure Blob批量加载CSV文件到SQL表中。
目前我们可以使用管理员凭据轻松完成此操作。
以下查询在管理员凭据下工作,但对于普通用户凭据无效
CREATE DATABASE SCOPED CREDENTIAL MyAzureBlobStorageCredential
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'WoZ0ZnpXzvdAKoCPRrsa7Rniq7SNjAcZxL..............';

我遇到了一个错误:

用户没有执行此操作的权限。

因此,我尝试为该用户授予权限,详情请参考这里

GRANT CREATE ON DATABASE SCOPED CREDENTIAL::AZUREBLOBSTORAGECREDENTIALPERMISSION TO MYUSER

上述授权存在以下语法错误。

数据库附近的语法不正确。

2个回答

3

查看官方文档《GRANT 在数据库范围凭据上授予权限》,该语句 GRANT ON DATABASE SCOPED CREDENTIAL 不支持 CREATE 作为可能的权限。此语句支持的权限有:CONTROL、TAKE OWNERSHIP、ALTER、REFERENCES 和 VIEW DEFINITION。可能以下语句适用于您:

GRANT CONTROL ON DATABASE SCOPED CREDENTIAL::AZUREBLOBSTORAGECREDENTIALPERMISSION TO MYUSER

1

这将授予myuser总体控制权,但我特别需要授予数据库范围凭据的权限。我们难道没有其他选择吗? - Jayendran
很遗憾,您想要的安全级别不可行,您需要按照文档授予CONTROL权限。您需要使用高特权帐户创建作用域凭据,然后使用更细粒度的权限来保护对凭据的访问。https://learn.microsoft.com/en-us/sql/t-sql/statements/grant-database-scoped-credential-transact-sql?view=sql-server-2017 - Murray Foxcroft

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接