在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.
我们非常感谢您的帮助。
答案 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)