我有包来访问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
答案 0 :(得分:1)
运行SSIS包的凭据:
如果从SQL Agent运行,它将作为运行Windows服务的代理用户运行。
如果通过代理凭据从SQL Agent运行,它将在该凭据下运行。
如果通过dtexec从Windows调度程序运行,它将在调度程序中定义的用户下运行。
在你的情况下,你正在使用存储过程,谁调用它?