【问题标题】:Specifying windows account for SSIS SourceConnectionOLEDB为 SSIS SourceConnectionOLEDB 指定 windows 帐户
【发布时间】:2020-09-21 07:30:02
【问题描述】:

我正在使用 SQL 服务器上的 sp_start_job 从 .aspx 启动 SSIS 包。

此包是一个导入作业,其中目标数据库与作业位于同一服务器上,因此 DestinationConnectionOLEDB 使用与运行作业相同的 SQL 凭据。 但是,源位于另一台服务器上,并且 SourceConnectionOLEDB 需要 Windows 域帐户才能登录。 (使用我的 Windows 帐户,该包在 Visual Studio 中运行良好)。 对于 SourceConnectionOLEDB 中的帐户,我似乎有两种可能的解决方案。

  • 传递运行 .aspx 的用户的帐户
  • 或在包中指定固定的windows账号和密码。

在 Visual Studio 中似乎无法执行最后一项操作,只要我选择 Windows 身份验证,用户 ID 和密码字段就会被禁用。或者有没有办法将此信息保存在 SSIS 中?

如果没有,我如何将用户 Windows 凭据传递给 sp_start_job

【问题讨论】:

    标签: asp.net sql-server ssis


    【解决方案1】:

    如果我没记错的话,您有一个运行 SSIS 包的 SQL Server 代理作业,其中包含“SQL Server 集成服务包”类型的步骤。 您无法在 SSIS (afaik) 中保存 AD 用户登录信息,但您可以通过设置要在特定作业步骤中使用的凭据和代理来指定在 SQL Server 中运行作业步骤的用户。

    当您运行作业时,它默认作为 SQL Server 代理帐户执行,但您可以使用凭据和代理更改它。

    • 凭据(安全 - 凭据)允许您指定用户名和密码(甚至是 AD 用户),以供代理稍后使用
    • 代理(SQL Server 代理 - 代理)允许您指定哪些凭据可用于不同的作业步骤类型。

    总结:

    1. 为您的 AD 用户创建凭据对象(安全 - 凭据)
    2. 创建代理对象(SQL Server 代理 - 代理)
      • 使用第 1 点中定义的凭据
      • 启用子系统“SQL Server Integration Services Package”
    3. 配置作业步骤
      • 在“运行方式”下拉菜单中,您应该会看到刚刚创建的代理

    当然,在你的包中你必须为数据源设置 Windows 身份验证

    【讨论】:

      猜你喜欢
      • 2013-08-02
      • 1970-01-01
      • 2015-09-07
      • 1970-01-01
      • 2021-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-03
      相关资源
      最近更新 更多