批量插入时的操作系统错误代码5(访问被拒绝。)

时间:2013-02-01 14:31:46

标签: asp.net sql-server sql-server-2008-r2 asp.net-2.0

我在服务器A上有一个ASP.NET应用程序,在服务器B上有一个SQL Server。 运行应用程序时,它会调用存储过程。此过程尝试从服务器A上的共享文件夹中批量插入文件,但发生以下错误:

无法批量加载,因为无法打开文件“\ serverA_address \ _ sharedFolder \ test.txt”。操作系统错误代码5(访问被拒绝。)。

奇怪的是,当我直接从sql management studio执行批量插入时,它运行时没有任何异常。

另一个观察:如果我将共享文件夹地址更改为运行sql server的本地文件夹(服务器B)而没有共享,则没有拒绝访问错误...

我尝试为所有用户设置bulkadmin权限,包括技术用户:运行sql服务的sql_serviceusr,运行应用程序并调用sql server的另一个技术用户以及登录到应用程序的用户。所有用户都是域帐户,所有服务器都使用Kerberos身份验证。

服务器A:Windows Server 2008R2

服务器B:Windows Server 2008R2,SQL Server 2008R2

感谢任何帮助或指导。

3 个答案:

答案 0 :(得分:1)

您正在进行双跃点,因此需要启用Kerberos委派。

答案 1 :(得分:1)

您可以创建连接帐户并使用SQL身份验证。

根据我的经验,让我们的网络人员正确设置Kerberos就像拔牙一样。我们让它工作了一个辉煌的一周,然后它突然停止工作。在此之后,这不值得麻烦。

这可能不是您正在寻找的确切答案,但可能是您的临时解决方案。

答案 2 :(得分:0)

根据您对错误的描述,我认为问题在于共享文件夹 共享文件夹时,您应该在文件夹属性的两个位置授予将从远程计算机访问该文件夹的用户的访问权限:在共享选项卡下和安全选项卡下。
您是否同时访问了它们?