Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server UNC路径和windows身份验证的大容量插入错误_Sql Server_Sql Server 2005_Authentication - Fatal编程技术网

Sql server UNC路径和windows身份验证的大容量插入错误

Sql server UNC路径和windows身份验证的大容量插入错误,sql-server,sql-server-2005,authentication,Sql Server,Sql Server 2005,Authentication,我有两台服务器,一台是应用服务器,它有webservice,另一台是DB服务器,它有SQLServer2005DB。Webservice是一个vb.net应用程序,所有输入文件都将位于应用程序服务器上。当我的应用程序使用Windows身份验证(集成安全)调用(通过webservice)DB server以使用(应用程序服务器的)UNC路径执行批量插入语句时,它将失败并出错- System.Data.SqlClient.SqlException:无法大容量加载,因为无法打开文件“\Serverna

我有两台服务器,一台是应用服务器,它有webservice,另一台是DB服务器,它有SQLServer2005DB。Webservice是一个vb.net应用程序,所有输入文件都将位于应用程序服务器上。当我的应用程序使用Windows身份验证(集成安全)调用(通过webservice)DB server以使用(应用程序服务器的)UNC路径执行批量插入语句时,它将失败并出错-

System.Data.SqlClient.SqlException:无法大容量加载,因为无法打开文件“\Servername\Foldername\file1.txt”操作系统错误代码5(未找到错误)。 位于System.Data.SqlClient.SqlConnection.OneError(SqlException异常,布尔断开连接) 位于System.Data.SqlClient.SqlInternalConnection.OneError(SqlException异常,布尔断开连接)

我是服务器上的管理员,Web服务在我的用户凭据上运行,我也是SQL DB上的SA。SQL server正在本地系统帐户上运行。我把它改为在我的用户帐户上运行,但运气不好!但是,当我在connectionstring中使用SQL身份验证时,同样的语句也会起作用

谁能解释一下这个问题

提前谢谢


Sai

按随机顺序排除故障的一些想法:

当您从SQLServerManagementStudio运行大容量插入时,它是否工作

更改运行MSSQLSERVER服务的帐户应该会有所帮助,但是您是否在更改凭据后重新启动了Sql Server

创建与Sql Server在同一用户下运行的命令shell:

runas /noprofile /user:domain\username cmd
然后查看是否允许您阅读网络共享:

net use \\machine\share

您的客户端使用SQL Server进行身份验证,然后SQL Server模拟客户端并尝试访问UNC路径。这是一种授权,是被暗中禁止的。必须采取显式步骤为SQL Server服务帐户启用受约束的委派。有关详细信息,请参阅本文:
本文展示了一个ASP服务访问后端数据库的受限委托,但在您的情况下,它将是中间访问后端UNC共享的SQL Server。当我在SQL mgmt studio上运行大容量插入(使用windows身份验证登录)时,它工作正常!!在我将运行MSSQLSERVER服务的帐户更改为域用户(我自己是am管理员)后,我重新启动了该服务。但它仍然不起作用。。令我惊讶的是,SQL身份验证可以工作,但Windows身份验证却不能。。!我将尝试该命令选项,看看是否有效!!是..我可以使用命令shell从DB服务器访问共享文件夹。。我认为这可能是一个错误,因为大容量插入语句无法使用windows auth在给定UNC路径的情况下工作。您可以显示执行大容量插入的VB代码吗?重新阅读时,您的错误消息似乎在开头缺少反斜杠,“\Servername\Foldername\file1.txt”应该以\\Servername开头。是..我的大容量插入语句很好..错误地在文章中缺少一个“\”。感谢回复。是的,我认为授权可以解决问题。但这是一个长期的尝试,因为现在我已经对我的应用程序进行了更改,将文件复制到DB服务器上并运行批量插入,没有任何问题。+1 Super,这里有一些额外的信息:如果用户使用SQL Server登录,则使用SQL Server进程帐户的安全配置文件。相反,如果SQL Server用户使用Windows身份验证登录,则无论SQL Server进程的安全配置文件如何,用户都只能读取用户帐户可以访问的文件。”