2017-08-24 40 views
0

我有一个SSIS。当我以用户K的身份从Visual Studio运行它时,它运行正常。但是,当我以其他用户A的身份运行它时,它宣称能够成功完成,但它什么都不做(整个过程在一个通过特定目录中的所有文件的foreach循环容器中)。然后,我尝试将其作为一项工作来运行,并且再次声称它会成功完成,但即使作业所有者是接近完全访问的用户,它也不会执行任何操作。如何检查SSIS文件访问权

问题是:如何知道哪些用户权限用于在作业中执行SSIS?

+0

https://ask.sqlservercentral.com/questions/4428/how-do-i-capture -which-userid-ran-the-ssis-package.html –

+0

作为一项工作运行时,它使用从SQL Server中看到的路径。因此,如果您的路径是D:\ MyPath,它将在VS中查看您的本地D驱动器,并在作为作业运行时从SQL Server的角度查看D驱动器。你需要破解SSIS包的日志并做更多的调查。 –

回答

1

通过编程,您可以访问ssis系统变量UserName(System::UserName)。

您可以在脚本任务的FireInformation命令中使用它,然后用户名将显示在执行日志中。

0

这肯定指向用户K在系统上没有所需的权限。

这种情况下的最佳做法是在加载数据的服务器上为服务帐户用户提供系统管理员权限。首先使用相同的帐户来创建凭证(安全 - >凭证),然后是可以访问子系统 - SQL Server集成服务软件包的代理帐户(SQL Server Agent-> Proxies)。现在,在您创建的用于运行此程序包的SQL Server代理作业中,使用此代理帐户运行作业。这样做,任何人都可以通过SQL Server代理作业来访问软件包。

使用此链接作为参考 - https://www.red-gate.com/simple-talk/sql/database-administration/setting-up-your-sql-server-agent-correctly/,检查节 - “创建SSIS包执行代理”

相关问题