我正在开发一个将数据批量加载到 SQL Server 2008 数据库中的应用程序。它将 CSV 文件写入网络共享,然后调用包含 BULK INSERT 命令的存储过程。
我正在将应用程序迁移到一个全新的网络。在这个新世界中,批量插入失败并出现以下错误:
Msg 4861, Level 16, State 1, Line 1
Cannot bulk load because the file "\\myserver\share\subfolder\filename" could not be opened. Operating system error code 5(failed to retrieve text for this error. Reason: 15105).
我使用编写文件的同一帐户使用 Windows 身份验证连接到数据库。该文件及其所在的文件夹授予我的用户帐户和数据库服务器的域服务帐户的读取和修改权限。该服务帐户显然已允许受约束的委派,这在MSDN中有所提及。还是不行。如果我使用 SQL Server 帐户进行连接,则批量插入成功,但我们正试图仅使用 Windows 身份验证。
有没有人知道需要做什么才能完成这项工作?SQL Server 究竟如何访问网络共享上的数据,在其服务帐户和连接用户的服务帐户之间跳转?我知道我可以在我们当前的基础架构中在类似的情况下批量插入,但是随着年龄的增长,它变得如此笨拙,以至于很难追踪过去为实现这一点所做的工作。