【问题标题】:How to allow sql athentication to run ssis packages in asp.net mvc [duplicate]如何允许 sql 身份验证在 asp.net mvc 中运行 ssis 包 [重复]
【发布时间】:2020-02-16 01:03:55
【问题描述】:

我创建了一个包含多个包的 SSIS 项目,它们在我的开发机器上运行良好,并且当部署到我工作的组织的服务器时(使用 SQL 管理工作室和给定用户在活动目录中运行它们)公司)。

我还创建了一个 asp.net Web 应用程序来运行这些包,它可以毫无问题地运行具有以下 ConnectionStrings 的包:

<add name="DBQueries" connectionString="Data Source=Server;Initial Catalog=SSISDB;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />

但是一旦我设置 SQL Server 身份验证并将 ConnectionStrings 更改为下一个,它就不起作用了:

<add name="DBQueries" connectionString="Data Source=Server;Initial Catalog=SSISDB;user=user;password=password;" providerName="System.Data.SqlClient" />

公司不会让应用程序拥有具有集成安全性的 ConnectionString。在 SQL 用户或 SSIS 包的配置中是否有解决方法或我可以做的任何事情?

编辑:调试我发现了这个:

The operation cannot be started by an account that uses SQL Server Authentication. Start the operation with an account that uses Integrated Authentication.

【问题讨论】:

  • 您是否检查了与您在第二个连接字符串中使用的用户/密码相关的权限?
  • “只是不起作用”没有任何意义。请进行一些挖掘并在某处为您提供线索的日志中找到错误消息。即,该包日志是否表明它已启动? IIS 日志是否表明它已尝试启动?
  • 尼克,这是我得到的错误:“使用 SQL Server 身份验证的帐户无法启动操作。使用使用集成身份验证的帐户启动操作。”
  • 那是哪个日志,它指的是什么操作?

标签: sql sql-server asp.net-mvc ssis etl


【解决方案1】:

从目录模拟调用者上下文执行的 SSIS 作业对 SQL Server 内部和外部的所有调用进行。因此,如果 SSIS 无法模拟调用者的 windows 上下文,则不会执行包。
底线是您需要从经过 Windows 身份验证的会话启动包。

有多种解决方案,我想说最简单的一种是使用 SQL Agent,即在 Window 代理帐户下创建 SQL Agent 作业,然后 ASP.Net 应用程序将启动此代理作业。

【讨论】:

猜你喜欢
  • 2017-08-16
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 2014-06-07
  • 2014-07-19
  • 1970-01-01
  • 1970-01-01
  • 2018-02-27
相关资源
最近更新 更多