我使用“导入/导出”向导创建了一个SSIS包,用于根据查询导出平面文件。我对所有内容都使用了Windows身份验证,并将平面文件保存到网络上的其他服务器上。当我单击Finish时,它会运行查询并创建文件,没问题。
现在,如果我创建一个Job并安排它在特定时间运行,它就会失败。它与目标服务器上的文件路径有关。如果我将其更改为数据库服务器上的本地C:驱动器,则作业运行正常。
我注意到在“作业设置”窗口中,运行SSIS包的唯一选项是" SQL Server代理服务帐户"。我想这个用户没有权限写入网络服务器?就像我说的那样,SSIS包运行正常 - 当我尝试将它作为预定的作业运行它失败时。错误消息是目标文件名无效。
答案 0 :(得分:0)
我有这个问题。你是对的,尽管有错误信息,这是一个权限问题。当您手动运行它时,它在您的帐户下运行,但是当作业运行它时,它是运行SQL代理Windows服务的帐户,它正在尝试编写该文件。因此,您需要确保SQL代理帐户有权访问该文件夹。
只需右键单击该文件夹,选择权限并为“Everyone”提供读/写访问权限,或者更安全地为SQL Agent Windows服务运行的同一帐户授予读/写权限。