远程运行SSIS包 - 它们运行在哪个帐户下?

4
我目前正在使用.NET 4.0构建一个应用程序,该应用程序将使用位于另一台SQL服务器上的SSIS 2008R2包来完成其工作。 SQL服务器具有帐户代理,该代理具有执行包所需的所有权限(调用报告服务,访问磁盘等)。
我的问题是:从C#中运行这些软件包的最佳方法是什么?
我了解到可以使用SQL Agent通过作业运行软件包,但我的担心在于-作业和软件包将使用哪个帐户?将是应用程序正在运行的帐户还是我可以使用SQL Server中的代理帐户?我如何进行配置?
先感谢您!
1个回答

1
您可以在SQL Server代理中配置每个作业步骤运行的用户。通常在此处使用代理用户。

如果您需要访问SQL Server数据库,可以通过调用SQL Server Agent系统存储过程来启动作业。但请注意,通过dbo.sp_start_job启动作业是异步的:它只是启动作业,然后返回。您将需要轮询其他方法来检查作业状态或结果。

连接到数据库的数据库用户(或者如果您使用集成登录到SQL Server,则是本地用户)必须具有调用存储过程的权限。


感谢您的快速回复。这是否意味着,如果我使用必要的代理用户创建代理作业,然后从C#远程执行它,它将使用此用户来运行包而不是C#进程正在运行的用户? 我指的是这篇文章:http://technet.microsoft.com/en-us/library/ms403355%28v=sql.105%29.aspx,其中提到了进程权限。 - braintechd
据我理解,他们建议使用SQL Server代理作业,以利用该功能在远程计算机上以不同用户身份运行。 - FrankPl
也许我没有理解正确的意思。感谢您的帮助,如果有任何差异,我会再次发布。 - braintechd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接