SQL Server:在 SQL 登录上批量插入失败并显示“您无权使用批量加载语句”,但适用于 Windows 登录

问题描述 投票:0回答:1

我尝试为 SQL Server 登录启用

BULK INSERT
,但我一直遇到此错误:

您没有使用批量加载语句的权限

这是我到目前为止所做的:

1. Windows 用户设置:当我使用我的 Windows 帐户(Windows 身份验证)运行

BULK INSERT
时,一切正常,数据成功插入到表中。

2. SQL Server 登录设置:

我创建了一个名为

bulkUser
的新 SQL Server 登录名(SQL Server 身份验证)。
在“登录属性”下,我分配了以下服务器角色:

  • 批量管理
  • 数据库创建者

然后我使用

bulkUser
登录并创建了一个新的部分数据库。之后,我在该数据库中创建了一个新的数据库用户,并将
db_owner
角色分配给这个新的数据库用户。

3. 批量插入尝试:

我在新创建的数据库中创建了一个简单的表,并尝试使用

BULK INSERT
运行
bulkUser
语句,但失败并出现错误:

您没有使用批量加载语句的权限

4. 文件权限:

  • 我尝试加载的
    .csv
    文件位于我的本地计算机上(桌面下)
  • 我尝试将
    .csv
    文件所在文件夹的修改和写入权限授予运行 SQL Server 的帐户 (
    NT Service\LOCALHOST
    )
  • 尽管如此,错误仍然存在。

其他详细信息:

  • SQL Server 版本:Windows 10 Pro 10.0 上的 Microsoft SQL Server 2022 开发人员版(64 位)

  • 当我在 Windows 用户下运行它时,

    BULK INSERT
    工作得很好,但我无法让它与 SQL 登录一起工作,即使它同时具有
    bulkadmin
    db_owner
    角色

  • 我正在使用本地文件路径

    BULK INSERT

那么是否可以在 SQL Server 实例上使用批量功能,还是仅适用于 Windows 用户?

sql-server ssms bulkinsert
1个回答
0
投票

此行为有两个可能的原因。

如果您从文件插入,那么您必须有权访问该文件,但是:在 Windows 身份验证的情况下 - 用户正在访问文件。如果服务器登录 - 服务器正在访问文件。因此,您需要检查 SQL Server 正在运行的凭据是什么,并确保该用户能够读取源文件。

另一个可能的原因非常罕见,更像是一个已知的错误。如果您使用的是 Linux - 则不支持

bulkadmin
,您必须使用
sysadmin
角色。

© www.soinside.com 2019 - 2024. All rights reserved.