SSIS包SSIS正在运行什么凭证?

时间:2015-07-30 07:27:53

标签: sql sql-server ssis ssis-2012

我有包来访问excel文件.xls。此文件位于网络路径上。
打包从商店调用,传递use32bitruntime = true。商店从C#代码调用 如果文件是本地文件=>包裹成功运行 如果文件是网络路径=>包运行失败。

检查网络路径:
我可以访问网络路径,甚至手动打开文件也是成功的。

所以我的问题是实际的凭证SSIS包运行了什么?
如果它在我的帐户下运行登录到SQL并调用商店,它应该访问该文件。但事实并非如此。事实证明,另一个凭证取代了我自己的凭证。在搜索了很长时间后,我找不到答案。

非常感谢任何帮助。

这是一个执行SSIS的商店

ALTER PROCEDURE [dbo].[execute_ssis_package]
 @folder_name varchar(100) 
 ,@project_name varchar(100)
 ,@package_name varchar(300)
 --,@RunAccount varchar(300) OUTPUT
 ,@output_execution_id BIGINT OUTPUT
AS
BEGIN

    SET NOCOUNT ON;

 DECLARE @execution_id BIGINT
 EXEC ssisdb.catalog.create_execution @folder_name,
           @project_name,
           @package_name,
           @use32bitruntime = True,
           @reference_id = Null,
           @execution_id = @execution_id OUTPUT

 Select @execution_id

 DECLARE @var0 smallint = 1
 EXEC [SSISDB].[catalog].[set_execution_parameter_value] 
      @execution_id,  
      @object_type=50, 
      @parameter_name=N'LOGGING_LEVEL', 
      @parameter_value=@var0

 EXEC ssisdb.catalog.start_execution @execution_id
 SET  @output_execution_id = @execution_id

1 个答案:

答案 0 :(得分:1)

运行SSIS包的凭据:

如果从SQL Agent运行,它将作为运行Windows服务的代理用户运行。

如果通过代理凭据从SQL Agent运行,它将在该凭据下运行。

如果通过dtexec从Windows调度程序运行,它将在调度程序中定义的用户下运行。

在你的情况下,你正在使用存储过程,谁调用它?