我目前正在.NET 4.0 中构建一个应用程序,它将使用 SSIS 2008R2 包来完成它的工作。这些包位于单独的 SQL Server 上。SQL 服务器有一个帐户代理,它具有执行包所需的所有权限(调用报告服务、访问磁盘等)。
我的问题是:从 C# 运行这些包的最佳方法是什么?
我阅读了有关使用 SQL 代理通过作业运行包的信息,但我担心的是 - 作业和包将使用什么帐户?它是运行应用程序的帐户,还是我可以使用我在 SQL Server 中拥有的代理帐户?我该如何配置?
提前致谢!
我目前正在.NET 4.0 中构建一个应用程序,它将使用 SSIS 2008R2 包来完成它的工作。这些包位于单独的 SQL Server 上。SQL 服务器有一个帐户代理,它具有执行包所需的所有权限(调用报告服务、访问磁盘等)。
我的问题是:从 C# 运行这些包的最佳方法是什么?
我阅读了有关使用 SQL 代理通过作业运行包的信息,但我担心的是 - 作业和包将使用什么帐户?它是运行应用程序的帐户,还是我可以使用我在 SQL Server 中拥有的代理帐户?我该如何配置?
提前致谢!
您可以配置在 SQL Server 代理中运行每个作业步骤的用户。在这里使用代理用户是很常见的。
如果您无论如何都需要访问 SQL Server 数据库,那么启动作业的一种简单方法是调用SQL Server 代理系统存储过程。但请注意,通过启动作业dbo.sp_start_job
是异步的:它只是启动作业然后返回。您将不得不轮询其他方法来检查工作状态或结果。
并且您用于连接数据库的数据库用户(或本地用户,如果您使用 SQL Server 集成登录)必须具有调用存储过程的权限。