如何在SQL Server中启用批量权限

Esh*_*Esh 37 sql-server sql-server-2012

我试图使用"批量"插入图像到SQL Server 2012.但是,最后得到错误消息说明:

消息4834,级别16,状态1,行2您无权使用批量装入语句.

我有"sysadmin"访问权限.

tom*_*y_o 57

试试GRANT ADMINISTER BULK OPERATIONS TO [server_login].它是服务器级别权限,而不是数据库级别.这对我来说已经解决了类似的问题(我相信使用OPENROWSET).

  • 有一个名为`[bulkadmin]`的服务器级角色可以做到这一点.您可以将该用户或组添加到该角色,而不是直接授予权限.在SQL2012中,它是"ALTER SERVER ROLE [bulkadmin] ADD MEMBER [USERNAME]",并且在至少返回SQL2000的版本中,您可以使用`EXEC master..sp_addsrvrolemember @loginame = N'USERNAME',@ rolename = N'bulkadmin' ` (22认同)

kab*_*hya 7

请注意,接受的答案或这两个解决方案中的任何一个仅适用于 Windows。

GRANT ADMINISTER BULK OPERATIONS TO [login_name];
-- OR
ALTER SERVER ROLE [bulkadmin] ADD MEMBER [login_name];
Run Code Online (Sandbox Code Playgroud)

如果您在基于 Linux 机器的 SQL Server 上运行其中任何一个,您将收到以下错误:

Msg 16202, Level 15, State 1, Line 1
Keyword or statement option 'bulkadmin' is not supported on the 'Linux' platform.
Run Code Online (Sandbox Code Playgroud)
Msg 16202, Level 15, State 3, Line 1
Keyword or statement option 'ADMINISTER BULK OPERATIONS' is not supported on the 'Linux' platform.
Run Code Online (Sandbox Code Playgroud)

检查文档

需要 INSERT 和 ADMINISTER BULK OPERATIONS 权限。在 Azure SQL 数据库中,需要 INSERT 和 ADMINISTER DATABASE BULK OPERATIONS 权限。Linux 上的 SQL Server 不支持 ADMINISTER BULK OPERATIONS 权限或bulkadmin 角色。只有系统管理员才能在 Linux 上对 SQL Server 执行批量插入。

Linux 解决方案

Msg 16202, Level 15, State 1, Line 1
Keyword or statement option 'bulkadmin' is not supported on the 'Linux' platform.
Run Code Online (Sandbox Code Playgroud)


shi*_*etz 6

使用大师

GRANT管理员对shira的大量操作