需要帮助SSIS

时间:2013-10-03 06:37:05

标签: sql sql-server encryption ssis dataflow

我们有一个SQL Server作业,用于将数据从一个sql server传输到其他sql server m / c.Both m / c位于不同的位置。目前我们使用的是Linked server,但它的性能非常慢。 因此我们考虑使用SSIS传输数据。在POC测试阶段,SSIS给了我满意的结果。但我仍然对此有一些疑问,

  • 为了便于更改环境(DEV到UAT和UAT到Prod),我使用了SQL服务器连接管理器。所有必需的连接字符串都存储在[SSIS Configurations]表中。但是此表中的连接字符串是纯文本格式。有没有办法加密这些连接字符串[请注意,我不是在谈论包级加密。只有在不同环境中连接字符串相同时,包级加密才有用,这在我的情况下是不可能的.. ..
  • 我应该怎样做才能处理不同的错误,SSIS中是否有任何错误处理机制。我听说过检查点但仍不清楚其使用情况

作为替代路径,我可以将SQLBulkCopy与IDatareader一起使用。 提前谢谢..

2 个答案:

答案 0 :(得分:1)

最好的方法是使用单独的应用程序来启动SSIS包。此控制台应用程序将能够从设置文件中读取加密密码并对其进行解密以便执行(用于插入连接字符串)。

然后,您的控制台应用程序可以遍历程序包中的所有连接管理器,并根据连接管理器的名称为每个管理器应用正确的连接字符串。

您需要引用SQL Server SDK程序集才能使其正常工作。此外,必须在将执行此应用程序的每台计算机上安装SQL Server Integration服务,否则SSIS将无法运行。

这是另一个问题的链接,该问题涉及如何以编程方式从.NET执行dtsx / SSIS包。 Can you run an SSIS task from .net?

答案 1 :(得分:1)

我建议你使用Windows受信任的身份验证,因为连接字符串中不需要登录或密码,也没有包密码,因为没有敏感信息。你真的应该停止使用SQL Server登录(而不是Windows登录),除非你有充分的理由。

两个SQL Server都需要属于同一个域,并且您需要将SQL Agent帐户设置为可以访问所需数据库的Windows帐户。