工作失败了。该作业由用户<user>调用。最后一步是step1 </user>

时间:2013-05-27 04:43:18

标签: sql ssis job-scheduling sql-agent-job

enter image description here enter image description here我创建了SSIS包,该包已成功运行并将数据转储到所需位置。但是当我通过作业运行时,相同的包会导致错误。我用谷歌搜索了这些链接,但未能找到出路 - http://social.msdn.microsoft.com/Forums/en-US/sqltools/thread/9034bdc4-24fd-4d80-ad8d-cc780943397a/

http://www.progtown.com/topic390755-error-at-start-job-the-job-was-invoked-by-user-sa.html

请建议。

2 个答案:

答案 0 :(得分:4)

屏幕截图很棒,但细节将在子线上,因此在第一张图片中,您展开了[+]符号,并显示“作为用户X执行。无法打开步骤输出文件”

如果选择该行,底部窗格中通常会显示更多详细信息。

在BIDS / SSDT中工作但在SQL代理

中没有的常规故障排除

也就是说,通常当某些东西在BIDS / SSDT中工作而在SQL Agent中不起作用时,首先要看的是权限的差异。您正在Visual Studio中运行该程序包,您的凭据用于

  • 文件系统
  • 数据库(除非提供特定用户和通行证)
  • 常规SaaS(发送邮件任务将使用某些邮件主机传输电子邮件)

在SQL代理作业中运行可能会使事情变得复杂,因为您现在可以在SQL代理帐户或DBA已建立的委派凭据集下运行每个作业单个作业步骤。

更复杂的问题是网络资源---我的K:驱动器可能映射到\\ server1 \ it \ billinkc,而SQL Server代理帐户可能将其映射到\\ server2 \ domainAccount \ SQLServer \或它可能完全没有映射。

正如Gowdhaman008所提到的,也可能存在32位与64位不匹配。通常,这特定于使用Excel作为源/目标,但也会使用其他RDBMS特定的驱动程序和/或ODBC连接来处理所述资源。

特定于您的示例

根据错误消息的片段,我的主要假设是帐户CORP\CORP-MAD$无权访问放置文件的位置。要解决此问题,请确保MAD $帐户具有对已放置快乐文件的位置的读/写访问权限。由于该帐户以$结尾,因此它可能仅存在于运行SQL代理的计算机上。如果它正在访问网络/ SaaS资源,您可能需要在SQL Server中创建一个显式凭据(在安全性下),然后为SSIS子任务授权该凭据。

次要的,不太可能的可能性是文件不存在,这只是一个奇怪的发送邮件错误。我知道即使提供了一个电子邮件地址,我仍然可以在The parameter 'address' cannot be an empty string上获得大量点击。

答案 1 :(得分:2)

我假设它在BIDS中运行,而不是在SQL Agent作业中运行。我遇到了这种问题,并在代理作业中设置了package属性,如下面的屏幕截图[检查Use 32 bit runtime],它对我有用。

enter image description here

希望这有帮助!