Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL代理登录-发生了什么?_Sql_Sql Server 2005_Sql Agent - Fatal编程技术网

SQL代理登录-发生了什么?

SQL代理登录-发生了什么?,sql,sql-server-2005,sql-agent,Sql,Sql Server 2005,Sql Agent,我有一个从SQL代理作业调用的DTSX包 DTSX包引用固定位置的文件(例如e:\mssql\myfile.txt) 在大多数机器上,这个位置是存在的,但在一些机器上,我必须手动映射这个位置(这不是问题-我知道更好的解决方案是使用package conifgurations动态拉取文件位置,但这不是一个选项-无论如何,我想了解发生了什么) 我已将代理服务设置为作为特定用户运行(例如,myuser) 当我以这个用户的身份登录并映射目录,然后直接运行dtsx包时,一切都很顺利 当我通过SQL代理作业

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

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

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

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

当我以这个用户的身份登录并映射目录,然后直接运行dtsx包时,一切都很顺利

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

net use e: \\svr\location
然后所有的作品也归档了


那么后面发生了什么?为什么SQL代理用户甚至在我以该用户身份登录时也需要驱动器映射。

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

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

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