【发布时间】:2020-08-27 15:15:24
【问题描述】:
我有一个 SSIS 包连接,它连接到带有 UNC 路径的 Sharepoint 站点,如下所示:
\\[Site URL]\DavWWWRoot\sites\DTS_BURM\DARBenchmarks\FileName.csv
我的包读取文件并将其导入 SQL DB。这个过程在 VS 中运行良好。但是,如果我想在作业中从 SQL Server 代理运行包,它会给我提供以下错误:
导入 RAW 数据:错误:无法打开数据文件“[Site URL]\DavWWWRoot\sites\DTS_BURM\DARBenchmarks\FileName.csv”。
最初这对我来说似乎很明显。运行 SQL 作业的帐户无权访问 SharePoint。因此,我在 Credentials 文件夹中添加了一个服务帐户,然后使用这些凭据为 SQL Server 代理创建代理。此外,我将该服务帐户作为所有者添加到 SharePoint,因此它具有读/写权限。
即便如此,我仍然收到一条错误消息,指出“无法打开数据文件”。我不确定我还能做什么,如果有人有建议,将不胜感激。
【问题讨论】:
-
您能否从 SQL Server 计算机打开该路径? SharePoint不是文件服务器。它公开了一个 WebDAV 端点,可以被 Windows 视为“网络共享”提供
Web Folders服务正在运行 -
@PanagiotisKanavos 不幸的是,我不允许远程进入 SQL Server 机器进行测试。
-
你怎么知道 WebDAV 会在那个服务器上运行?
-
@PanagiotisKanavos 我没有,为了进一步说明这一点,如果我以服务帐户身份登录 SSMS 并运行“EXEC master.dbo.xp_fileexist [PATH]”,它将显示该目录没有该帐户存在。你知道解决办法吗?我愿意接受其他方法来实现我的目标。
-
没有访问权限以作为您的服务帐户登录服务器,您将无法使其正常工作。即使可以,也不稳定。您必须在服务器上安装“WebDav Redirector”,将 sharepoint 站点添加到 IE 中的受信任列表中,登录 sharepoint 并勾选“记住我”,等等……但在某些时候,sharepoint 会要求您重新进行身份验证。花了几个星期整理出来。我们只是在代理作业步骤中使用 power shell 脚本在运行 SSIS 之前将文件下载到本地。这必须是 sql2014 或更高版本,因为 sql 代理使用的是什么版本的 powershell。
标签: sql-server sharepoint ssis unc sql-server-agent