SQL 2012 - SSIS包在计划时未填充文本文件

时间:2014-05-22 17:09:54

标签: sql ssis sql-server-2012 agent

我正在使用SQL 2012 Enterprise,我有一组SSIS包导出,可将数据推送到共享网络文件夹上的文本文件。包装并不复杂,在大多数情况下它们都能很好地工作。我面临的问题是他们在预定时无法工作 - 尽管报告他们已经成功。

让我解释一下情景;
1)当从BIDS内部手动运行时,它们正常工作,创建txt文件并填充数据 2)当部署到SSISDB并从代理作业运行时,它们也按预期工作 - 创建文件并填充数据。
3)当代理作业计划在晚上运行时,作业运行并报告成功。文件已创建,但未填充数据。

我检查了Integration Services目录上的报告,并从OnInformation逐行比较了这些消息。两个运行都报告平面文件目标写入xxxx行。

数据存在,代理帐户具有正确的访问权限。我无法理解为什么工作在手动启动时有效,但在计划时表现不同。

有没有人见过类似的东西?这感觉就像一个非常奇怪的错误......

亲切的问候,

詹姆斯

2 个答案:

答案 0 :(得分:1)

确保您设置为SSIS任务代理的帐户具有对该文件的读/写权限。

IMX,当您手动运行SQL代理作业时,它似乎使用以某种方式启动它的用户的上下文。我一直认为这是模仿的副作用。只有当它实际上按计划运行时,所有内容都使用分配的安全权限。

此外,我认为当用户启动作业时,用户正在模拟代理,但是当通过计划运行作业时,代理的帐户会模拟代理。确保服务帐户有权模拟代理。请查看sp_grant_login_to_proxysp_enum_login_for_proxy

这是一个大致贯穿整个过程的链接: http://www.mssqltips.com/sqlservertip/2163/running-a-ssis-package-from-sql-server-agent-using-a-proxy-account/

我还记得这段视频很有用: http://msdn.microsoft.com/en-us/library/dd440761(v=SQL.100).aspx

答案 1 :(得分:1)

我对Excel文件有同样的问题。这是许可权。

对我有用的是将SERVICE帐户添加到文件夹的安全性标签中。然后SQL代理可以访问这些文件。

Folder security