Jat*_*tel 5 sql-server ssms sql-server-2008-r2 bulk-insert
我们有一个用户每次使用网络位置进行批量加载时都会收到此错误消息,它会在下面引发错误。
“无法批量加载,因为无法打开文件。操作系统错误代码 3(无法检索此错误的文本。原因:15105)。”
FQDN 指定为文件的位置 (\servername\sharename\filename.txt)
当文件被复制到服务器(C:\ 驱动器)上时,查询通过 SSMS 运行良好
我已经检查了共享文件夹的所有 NTFS 权限。我已经浏览了许多建议解决方案的帖子,但没有运气。
winerror.h 将操作系统错误代码 3列为ERROR_PATH_NOT_FOUND
。这可能表明该文件\\servername\sharename\filename.txt
不存在或 SQL Server 服务帐户无权通过 UNC 访问该文件。
使用 SQL Server 配置管理器确定 SQL Server 服务帐户的名称:
检查 UNC 的文件共享安全性以确保该帐户有权访问共享。检查 UNC 下的文件夹的文件系统安全性,以确保帐户有权访问该文件。
T-SQLBULK INSERT
需要了解安全架构。摘自该页面:
如果用户使用 SQL Server 登录,则使用 SQL Server 进程帐户的安全配置文件。使用 SQL Server 身份验证的登录无法在数据库引擎外部进行身份验证。因此,当使用 SQL Server 身份验证登录启动 BULK INSERT 命令时,将使用 SQL Server 进程帐户(SQL Server 数据库引擎服务使用的帐户)的安全上下文建立与数据的连接。要成功读取源数据,您必须向 SQL Server 数据库引擎使用的帐户授予对源数据的访问权限。相反,如果 SQL Server 用户使用 Windows 身份验证登录,则该用户只能读取那些可以读取的文件。由用户帐户访问,无论 SQL Server 进程的安全配置文件如何。
当使用 sqlcmd 或 osql 从一台计算机执行 BULK INSERT 语句,将数据插入到第二台计算机上的 SQL Server 中,并使用 UNC 路径在第三台计算机上指定 data_file 时,您可能会收到 4861 错误。
要解决此错误,请使用 SQL Server 身份验证并指定使用 SQL Server 进程帐户的安全配置文件的 SQL Server 登录名,或配置 Windows 以启用安全帐户委派。有关如何启用用户帐户进行委派信任的信息,请参阅 Windows 帮助。
归档时间: |
|
查看次数: |
11986 次 |
最近记录: |