47

我正在尝试使用“批量”将图像插入到 SQL Server 2012 中。但是,最终得到的错误消息是:

Msg 4834, Level 16, State 1, Line 2 您没有使用批量加载语句的权限。

我有“系统管理员”访问权限。

4

6 回答 6

76

试试GRANT ADMINISTER BULK OPERATIONS TO [server_login]。它是服务器级别的权限,而不是数据库级别的权限。这在过去为我解决了一个类似的问题(我相信使用 OPENROWSET)。

于 2013-05-08T23:54:56.830 回答
7

尝试这个:

USE master;

GO;
 
GRANT ADMINISTER BULK OPERATIONS TO shira;
于 2016-04-12T11:38:47.673 回答
3

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

GRANT ADMINISTER BULK OPERATIONS TO [login_name];
-- OR
ALTER SERVER ROLE [bulkadmin] ADD MEMBER [login_name];

如果你在基于 linux 机器的 SQL Server 上运行它们中的任何一个,你会得到这些错误:

Msg 16202, Level 15, State 1, Line 1
Keyword or statement option 'bulkadmin' is not supported on the 'Linux' platform.
Msg 16202, Level 15, State 3, Line 1
Keyword or statement option 'ADMINISTER BULK OPERATIONS' is not supported on the 'Linux' platform.

检查文档

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

Linux 解决方案

ALTER SERVER ROLE [sysadmin] ADD MEMBER [login_name];
于 2020-09-05T08:37:47.823 回答
1

如果服务帐户无权读取正在导入的文件,SQL Server 也可能返回此错误。确保服务帐户对文件位置具有读取权限。例如:

icacls D:\ImportFiles /Grant "NT Service\MSSQLServer":(OI)(CI)R

于 2017-12-06T20:36:17.777 回答
0

如果您收到错误消息“无法批量加载文件,因为您没有访问权限”

首先确保您提供的路径和文件名是正确的。

然后尝试将 bulkadmin 角色授予用户。为此,请按照以下步骤操作:- 在对象资源管理器中 -> 安全 -> 登录 -> 选择用户(右键单击)-> 属性 -> 服务器角色 -> 选中 bulkadmin 复选框 -> 确定。

这对我有用。

于 2020-04-21T08:33:09.853 回答
-1

USE Master GO

ALTER Server Role [bulkadmin] ADD MEMBER [username] GO Command failed even tried several command parameters

master..sp_addsrvrolemember @loginame = N'username', @rolename = N'bulkadmin' GO Command was successful..

于 2014-11-10T17:49:16.770 回答