通过SQL Server作业代理访问不同服务器上的文件

时间:2012-02-26 11:12:12

标签: sql sql-server-2005 ssis ssas sql-server-job

我在服务器X上运行了一个SQL Server作业。 现在,我必须删除服务器Y上的现有AS(Analysis Services)备份文件,并再次创建新的备份。我在批处理文件中编写了所需的代码并将其保存在服务器X的硬盘上。我正在使用SSIS中的执行流程任务执行此批处理文件。

服务器X上的这个SSIS包将在每周的特定时间通过SQL Server作业运行。

如果我手动运行包,这个批处理文件会成功执行,但如果我运行预定的作业,它就会失败!我尝试了很多次但是徒劳无功。

错误消息显示“拒绝访问”以删除服务器Y上的文件。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

手动执行批处理文件时,您的凭据会显示给服务器Y,它们会被接受,操作系统会根据请求删除该文件。

当SQL代理运行相同的文件时,SQL代理服务帐户的凭据将显示给服务器Y.它们被服务器拒绝 - 它甚至无权查看该框,或者它可以读取和列出文件on \ ServerY \ SomeShare但最终无法删除文件。

分辨率

选项1)在服务器Y上,添加与服务器X的SQL代理服务帐户对应的帐户,该帐户具有足够的权限以查看AS备份所在的文件夹并删除备份。

选项2)在服务器X上创建凭据代理,在服务器Y上具有上述权限,然后以该用户身份执行SSIS包,当然假设凭据具有所有其他权限服务器X的代理帐户。