Azure SQL Server中的批量插入权限问题

时间:2019-02-22 22:31:59

标签: azure azure-sql-database azure-sql-server

在Azure SQL Server中运行批量插入命令时,用户遇到以下错误。我正在使用Azure SQL Server,而不是SQL Sever。与批量插入授予权限相关的大多数命令在Azure SQL Server中不起作用。

错误

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

在Azure SQL Server中尝试添加用户的命令

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.

我们非常感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

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

GRANT ADMINISTER DATABASE BULK OPERATIONS TO testuser;

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

答案 1 :(得分:0)

在Azure上,它仅适用于有问题的数据库中的表。它不适用于临时表。因此,如果您要并行进行批量加载并且要使用临时表,那么您将处于困境。

答案 2 :(得分:0)

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)