我尝试为 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 用户?
此行为有两个可能的原因。
如果您从文件插入,那么您必须有权访问该文件,但是:在 Windows 身份验证的情况下 - 用户正在访问文件。如果服务器登录 - 服务器正在访问文件。因此,您需要检查 SQL Server 正在运行的凭据是什么,并确保该用户能够读取源文件。
另一个可能的原因非常罕见,更像是一个已知的错误。如果您使用的是 Linux - 则不支持
bulkadmin
,您必须使用 sysadmin
角色。