Azure SQL 服务器中批量插入的权限问题

Permission Issue on Bulk Insert in Azure SQL Server

用户在 Azure SQL 服务器中执行 运行 批量插入命令时出现以下错误。我使用的是 Azure SQL 服务器,而不是 SQL 服务器。大多数与批量插入授予权限相关的命令在 Azure SQL 服务器中不起作用。

错误

You do not have permission to use the bulk load statement.

在 Azure SQL 服务器中尝试添加用户的命令

EXEC sp_addrolemember 'db_ddladmin', 'testuser'; 

ALTER SERVER ROLE [bulkadmin] ADD MEMBER testuser

GRANT ADMINISTER BULK OPERATIONS TO testuser

错误

Msg 40520, Level 16, State 1, Line 5
Securable class 'server' not supported in this version of SQL Server.

非常感谢您的帮助。

在 Azure SQL 数据库中,将 ADMINISTER DATABASE BULK OPERATIONS 授予所需数据库上下文中的主体:

GRANT ADMINISTER DATABASE BULK OPERATIONS TO testuser;

用户还需要对目标 table 的 INSERT 权限。这些 Azure SQL 数据库权限在权限部分的 BULK INSERT documentation 中有详细说明。

在 Azure 上,它仅适用于相关数据库中的表。它不适用于临时表。因此,如果您并行批量加载并想使用临时表,那么您就陷入困境了。

GRANT CONTROL to testuser 

不需要其他任何东西,只需在内容数据库(不是主数据库)中执行即可

完整步骤

硕士

CREATE LOGIN login1 WITH password='1231!#ASDF!a';

在内容数据库中

CREATE USER user1 FROM LOGIN login1;

GRANT CONTROL to user1; --(this is for bulk to work)