我有一个SSIS包,可以访问网络共享上的文件夹。 如果我将此包作为SQL代理作业的一部分运行,则会成功。 如果我直接从我的开发PC上的SSIS集成目录(右键单击并执行)运行此程序包,则会因权限错误而失败。 如果我直接从托管SQL实例的服务器上的SSIS集成目录(右键单击并执行)运行此程序包,它就可以运行。
此过程中涉及的所有用户都可以访问该文件夹(我的用户名,运行SSIS服务的用户设置和SQL代理服务)。我肯定知道这一点,因为我可以在任何这些用户下记录这些文件夹。
为什么会出现这种想法?
令我感到困惑的是,如果您从托管SQL实例的服务器运行它,而不是从我的本地PC(在同一用户下登录时)运行它,它会起作用!
我们已经到了这一点,当我们想要运行访问文件系统的某些包时,我们创建一个SQL代理作业来运行它。这不太理想。
答案 0 :(得分:1)
将NETWORK SERVICE
用户帐户添加到该文件夹修复了该问题。我不完全确定为什么它在执行包的用户的上下文中运行,但它解决了这个问题。
答案 1 :(得分:0)
使用' Sql server身份验证' SQL Server Management Studio不提供Integration Service目录的执行权限。因此,您无法从您的计算机执行任何程序包。
您可以在服务器计算机上运行程序包,因为SQL Server服务器实例已安装在该特定计算机上,并且您通过“ Windows身份验证”连接SQL服务器。 / p>
我希望这可以帮到你!