[英]SSIS File System Task Error while copying files between servers
首先@Nick.McDermaid 在评论中提供了一个非常有用的链接,以了解有关Integration Services Catalog 使用哪些用户凭据来执行包的更多信息?
经过搜索有很多问题可能会导致此问题,因此我将提供许多可以解决您问题的解决方案。
1. SQL Server 账户权限
在指定路径上为您登录的帐户添加读写权限
2.为Network账号添加windows身份验证
您可以为网络帐户添加 Windows 身份验证登录(在 sql server 代理中用作代理)并使用它运行包。
这不是您的情况,但这些信息可能会有所帮助
1. SQL Server 账户权限
为指定路径上的以下帐户添加读写权限:
NT SERVICE\\SQLSERVERAGENT
NT SERVICE\\MSSQLSERVER
2. 设置代理
您可以为 SSIS 包设置代理并使用该代理帐户运行作业。
您可以参考以下链接之一以了解更多信息:
3. 将网络驱动器映射到 SQL Server 实例
一些文章建议映射您在 SQL Server(而不是操作系统)上使用的网络驱动器。您可以参考以下链接之一以了解更多信息:
4. 添加系统管理员角色
将 SysAdmin 角色添加到以下帐户:
NT SERVICE\\SQLSERVERAGENT
NT SERVICE\\MSSQLSERVER
您是否查看过域帐户对 MSDB 的权限。 我会遵循这些步骤。 我有类似的问题
1)在服务器中部署包(正如您已经完成的那样)
2) 确保包已加载并在 SSISDB 下的集成服务目录中可用
3)重新部署项目并尝试。
如果这些都很好,仍然在 SSISDB 中打包失败,我会尝试使用 CMD(DTEXUI/文件/“包路径”)的 Windows 调度程序任务。 如果谈论 Windows 调度程序无关紧要,请道歉。
前段时间我遇到了类似的问题:在加载文件之前,我必须将文件从服务器复制到执行 SSIS 的服务器。
如果包被配置为只使用本地目录,它每次都能工作。 如果我手动启动它,它可以在不同的机器上工作。 但是当涉及到 SQL Agent + 不同机器时,它失败了。
通过在 Visual Studio 中抓取 SQL 日志和一些脚本,我认为这是本地和 AD 帐户的问题。
我通过以下方式解决了这个问题:
近一年以来,这每天都在工作,没有任何问题。
发布的答案和评论中有很多猜测和红鲱鱼。 它与 SQL 代理代理、映射驱动器、MSDB 或系统管理员无关。 正如最终从您的问题中收集到的那样,SQL Agent 中的执行很好,只是当您通过右键单击 Integration Services 目录以交互方式运行它时才会出现问题。
您问题的最后一部分表明根本原因在这里被理解:
我们可以通过任何方式将包配置为通过代理帐户运行。
交互式用户(在目录上单击鼠标右键)没有权限,您需要一种方法来作为具有权限的不同用户从目录中运行。
只是为了确认:如果您在 SSIS 日志中单击查看上下文,它将向您显示它以哪个用户身份运行,这与 SQL 代理的成功包执行不同。
我仔细研究了目录中的执行和配置菜单以及create_execution
sp,我没有看到任何以不同用户身份运行它的方法。
我有两个建议:
我遇到了类似的错误。 尝试使用文件系统任务将文件从一个文件夹移动到另一个文件夹并收到以下错误消息和
解决方案:创建连接管理器以指向源文件位置并创建一个名为“DesVariable”的变量以显示目标文件路径(例如)C:\\abc。 在文件系统中,任务属性设置如下
IsSourcePathVariable: False SourceConnection : SourceFileConnectionManager
IsDestinationPathVariable: True DestinationVariable: DesVariable
然后就通过了
[移动/复制文件-文件系统任务属性]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.