文件位置更改为远程共享时出现 BULK INSERT 错误

Posted

技术标签:

【中文标题】文件位置更改为远程共享时出现 BULK INSERT 错误【英文标题】:BULK INSERT error when the file location changed to remote share 【发布时间】:2019-10-15 16:43:09 【问题描述】:

文件位置更改为远程共享后,我在 BULK INSERT 上收到以下错误。在它曾经是本地驱动器中的共享文件夹之前,我们从未遇到过这个问题。我正在通过 SSMS 连接到 SQL Server 的本地 PC 运行此 BULK INSERT。

我已确保 SQL 服务器和文件权限都已到位。

在我从 SSMS 运行此命令之前,它是 \\SQLServer\FTP 位置,它是该 SQL Server 本地驱动器中的共享文件夹,但现在我将文件位置更改为网络共享 \\Fileshare\FTP 并拥有出现上述错误,但 SQL 服务帐户(域帐户)和我(域帐户)都在该新位置具有提升的权限。

任何帮助或建议!

谢谢,

【问题讨论】:

如果实例是本地的,您必须检查访问文件的权限,但是如果您是从计算机访问服务器(远程访问),则必须指定服务器中的路径,以便意味着您应该将文件包含在不在本地的服务器目录中。 "BULK INSERT Table FROM 'C:\bulk\usuarios_prueba.csv' -- 这是非本地的服务器路径 WITH (FIELTERMINATOR =',', ROWTERMINATOR ='\n'); " 【参考方案1】:

我可以确定可能导致此问题的三种情况:

    来自the SQLAuthority Blog,有关存在跨域链接(在本例中为从工作组到完整域)的相关备份问题的完整详细信息。

    在 *** 上的问题 Cannot bulk load because the file could not be opened. Operating system error code 1326(Logon failure: unknown user name or bad password.) 中还有另外两个可能的答案。我们可以打折第一个(登录权限),因为您声明您有权限,但另一个解决方案(我通过将 SQL Server 端口号添加到 SSIS 中的连接字符串来修复它,强制 SSIS 通过TCP/IP 而不是命名管道。)可以应用。尝试使用 TCP/IP 强制连接到服务器。

所有这些问题似乎都与尝试跨域通信有关。如果这是您的问题,这些修复中的一个或多个应该适用于您的问题。

-

【讨论】:

1.涉及的所有服务器都在同一个域基础架构中。 2. Fileshare 和 SQL Server 中都有权限。我不确定是否要强制更改连接。此外,SQL 服务器具有动态端口。【参考方案2】:

终于成功了……

我必须按照此链接https://thesqldude.com/2011/12/30/how-to-sql-server-bulk-insert-with-constrained-delegation-access-is-denied/ 中的指南配置 Kerberos 身份验证。

当然,我必须进行调整以适应我们的环境,并且必须让 Active Directory 管理员参与创建 SPN 和启用 DELEGATION 属性。

谢谢。

【讨论】:

以上是关于文件位置更改为远程共享时出现 BULK INSERT 错误的主要内容,如果未能解决你的问题,请参考以下文章

将项目从情节提要更改为 xib 文件时出现“此类与键的键值编码不兼容”错误

Win10远程连接时出现的错误你不能访问此共享文件夹,因为你组织的安全策略...解决方法

从发布模式更改为调试模式时出现“调试断言失败”错误

关于Windows mstsc远程连接连接时出现”正在加密连接“过慢的故障

SqlServer批量导入

从字符数组更改为字符串时出现“字符串下标超出范围”错误?