1

我有一个从 SQL 代理作业调用的 DTSX 包。

DTSX 包引用固定位置的文件(例如,e:\mssql\myfile.txt)。

在大多数机器上,这个位置存在,但在某些机器上我必须手动映射它(这不是问题 - 我知道更好的解决方案是使用包配置来动态提取文件位置,但这不是一个选项 -无论如何我想了解发生了什么)

我已将代理服务设置为以特定用户身份运行(例如myuser

当我以该用户身份登录并映射目录,然后直接运行 dtsx 包时,一切顺利。

当我通过 SQL 代理作业运行包时,找不到该文件。如果我将命令行作业步骤添加到代理作业以映射驱动器:

net use e: \\svr\location

然后所有的作品文件也。

那么在后台发生了什么?即使我以该用户身份登录,SQL 代理用户怎么会要求驱动器映射。

4

1 回答 1

2

问题是您的 SQL 代理没有在您登录的 myuser 下运行。您可以在您的 sql 作业历史记录错误消息中验证这一点。

转到服务并更改为 sql 代理服务以在服务帐户 myuser 下运行。

另一个建议是共享 svr 文件夹以获得 myuser 的权限。这样您就不必担心文件夹路径。

于 2011-05-17T20:48:07.503 回答