运行 在特定帐户下手动打包 SSIS

Run SSIS package manually under a specific account

我在文件系统中存储了一个包。我必须手动 运行 包,因此我使用 "Integration Services" 打开 MSSMS,并使用 "Windows Authentication"。该包是在我的帐户下执行的。 Integration Services 中是否有任何设置可以在另一个帐户下执行包?我的 windows 帐户太强大了,所以我的目标是在有一些限制的特定帐户下执行程序包。

我想到了三种不同的方法。

方法一

如果您喜欢当前使用 Integration Services 对象类型打开 SSMS 以查找包和 运行 的方法,请继续这样做。诀窍是,当您 运行 程序时,您需要告诉 Windows 您想要 运行 作为另一个用户。 You can either Ctrl-Shift-Right click to bring up the UI for this or use the command line and RunAs

如果您知道包所在的位置(文件系统与数据库),您可以通过构建命令行参数来消除鼠标点击 dtexec.exe /file C:\packages\are\here\mypacakage.dtsx

方法二

打开 Windows TasK Scheduler 并定义一个作业以使用上述命令行调用 (dtexec) 但不安排它,因此它是一个临时作业。 Windows Task Scheduler 理解模拟其他用户的概念,因此它会提示您输入 运行 进程的凭据。

方法三

类似于两个,但这里我们将使用 SQL Agent 来完成我们的肮脏工作。同样,这是一项计划外的工作,但使用代理 运行 包的好处是 SSIS 作业步骤类型 "knows" 如何构建 dtexec 的命令。

要使这项工作正常进行,您需要创建一个凭据,然后为该凭据创建一个代理,然后允许代理在集成服务类型的作业步骤中使用。

我通常打开 SSMS,所以我可能会使用方法 3 并以我非凡的宇宙力量启动这项工作,然后将其压缩到一个小的 peon 帐户中