我有一个从SQL代理作业调用的DTSX包。
DTSX包引用固定位置的文件(例如e:\ mssql \ myfile.txt)。
在大多数机器上,这个位置存在,但有些我必须手动映射(这不是问题 - 我知道更好的解决方案是使用包装配置动态拉动文件位置,但这不是选项在这里 - 无论如何我想了解发生了什么)
我已将代理服务设置为以特定用户身份运行(例如 myuser )
当我以该用户身份登录并映射目录时,直接运行dtsx包,一切顺利。
当我通过SQL代理作业运行包时,找不到该文件。如果我向代理作业添加命令行作业步骤以映射驱动器:
net use e: \\svr\location
然后所有工作文件也。
那么背景中发生了什么?为什么即使我以此用户身份登录,SQL代理用户也会重新询问驱动器映射。
答案 0 :(得分:2)
问题是您的SQL Agent未在您已登录的myuser下运行。您可以在sql作业历史记录中验证错误消息。
转到服务并更改为sql代理服务,以便在服务帐户myuser下运行。
另一个建议是共享svr文件夹以获得myuser的权限。这样你就不用担心文件夹路径了。