gpt4 book ai didi

sql-server-2008 - 从使用 Windows 身份验证的网络共享批量插入 SQL Server 需要什么权限?

转载 作者:行者123 更新时间:2023-12-04 07:07:35 25 4
gpt4 key购买 nike

我正在开发一个将数据批量加载到 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 究竟是如何访问网络共享上的数据、在其服务帐户和连接用户的服务帐户之间跳转的?我知道在我们当前的基础架构中,我可以在类似情况下进行批量插入,但是随着时间的推移,它是如此粗糙,以至于很难追踪过去为实现这一目标所做的工作。

最佳答案

最近,我们的一些开发人员遇到了这个问题。我想出了许多方法来允许测试批量插入。

我们的首选是使用 SQL 服务帐户。我们将 SQL 服务器和 SQL 代理设置为作为服务帐户运行,然后允许开发人员触发代理作业。服务帐户被授予对 UNC 共享的权限,并且这一切都正常运行。请注意,服务帐户始终可以正常运行这些代理作业(假设设置了 UNC 权限)。正是开发人员试图测试会遇到这些问题。

另一种方法是在 SQL 服务器本身上创建一个共享并将批量插入路径指向本地目录。这些错误似乎只在访问 UNC 路径时发生。无论 UNC 路径是否具有允许您访问的正确权限。例如我们创建 C:\test\作为 SQL 服务器本身上的一个文件夹,并允许它允许开发人员将测试文件放在那里。然后通过批量插入命令调用它们。

可能需要针对 master 运行命令以允许 SQL 登录组权限进行批量插入。这是如下。

GRANT ADMINISTER BULK OPERATIONS TO "domain\usergroup"

关于sql-server-2008 - 从使用 Windows 身份验证的网络共享批量插入 SQL Server 需要什么权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11230361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com