【问题标题】:Execute SSIS package from Java calling Catalog procedures从 Java 调用目录过程执行 SSIS 包
【发布时间】:2017-03-13 16:23:35
【问题描述】:

所以我想做的是调用一个存储过程usp_Something,其中包含类似这样的内容

EXEC [SSISDB].[catalog].[create_execution]
    @folder_name = @f_name,
    @project_name = @pro_name,
    @package_name = @pack_name,
    @execution_id = @exec_id output

EXEC [SSISDB].[catalog].[set_execution_parameter_value] @exec_id,  @object_type=50, @parameter_name=N'SYNCHRONIZED', @parameter_value=1

EXEC [SSISDB].[catalog].[start_execution] @exec_id
--SET @output_execution_id = @exec_id

在 Java 中,我使用 SQL Server 身份验证尝试调用 usp_Something 过程与 JDBC 驱动程序建立连接。但我得到一个错误

使用 SQL Server 的帐户无法启动该操作 验证。使用使用 Windows 的帐户启动操作 身份验证。

现在,我知道您需要使用 Windows 身份验证来运行包,但有什么解决方法吗?有人告诉我不要使用 Windows 身份验证,所以我需要一种方法来使用 SQL Server 身份验证

【问题讨论】:

  • 我猜这是不可能的。然而,这可能是在 dba.stackexchange.com 上提出的更好的问题

标签: java sql-server jdbc ssis


【解决方案1】:

我在项目中所做的是使用 IntegratedSecurity:

jdbc:sqlserver://${db.server};databaseName=${db.name};instanceName=${db.instance};integratedSecurity=true;

将使用运行您的 java 应用程序的同一用户完成与 db 的连接。在我的例子中,我以域用户身份运行我的 spring-boot 应用程序,该应用程序也被配置为连接到 SQLServer 并执行存储过程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多