2

我有一个 SSIS 包,可以将一些表传输到网络驱动器上的 CSV 文件;它在我的电脑上手动运行良好。我将它存储在 MSDB 数据库中的服务器上并从那里执行它并且运行良好,但是当我创建一个具有从 MSDB 运行 SSIS 包的步骤的作业时,它失败说它找不到 CSV 文件名。

我昨天花了一整天时间弄清楚这意味着在整个工作中使用的任何登录凭据都存在权限问题。作业所有者显示为域/myuserid,步骤属性显示他们正在使用我的用户名进行 Windows 身份验证。问题是,我知道我可以访问这个文件夹。

错误日志的第一行显示:“以用户身份执行:servername\SYSTEM”。所以我确保用户“SYSTEM”可以访问我想要加载文件的网络文件夹,但我仍然得到同样的错误。

命令行看起来像 @command=N'/SQL "\SSIS package name" /SERVER servername /CHECKPOINTING OFF /REPORTING E'

编辑:我发现SQL Server 代理工作帐户问题,有人询问工作在谁下运行,marc_s 说“我似乎无法找到任何明确的答案,真的。因为我的工作通常选择和更新数据库中的内容,我假设默认情况下将使用“所有者”帐户,除非您在给定步骤中指定其他帐户“

这也让我相信它正在使用我可以访问的登录信息

4

2 回答 2

4

我们在这里提出的最佳实践是为 SSIS 创建一个域帐户,然后在 SQL Server 中设置一个代理,用于在 SQL 作业中运行 SSIS 包。

于 2011-06-24T20:26:26.903 回答
2

我会说 servername\SYSTEM 帐户是本地帐户,因此无法访问其他服务器上的网络文件夹。

您可能希望将其作为具有访问权限的某种域帐户运行。

通常这将是 SQL Server 代理,因此请检查控制面板中的服务列表,查看运行代理的帐户,如有必要,将其更改为适当的帐户。

不过,这可能会产生连锁反应,所以要小心其他正在运行的作业。

于 2011-06-24T20:19:10.767 回答