1

我在服务器 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

感谢任何帮助或指导。

4

3 回答 3

1

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

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

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

于 2013-02-03T16:23:27.107 回答
1

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

于 2013-02-01T16:26:40.183 回答
0

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

于 2013-02-01T14:55:13.537 回答