0

我们有一个 SQL Server 作业,用于将数据从一个 sql server 传输到另一个 sql server m/c。两个 m/c 位于不同的位置。目前我们使用链接服务器,但它的性能非常慢。因此,我们考虑使用 SSIS 传输数据。在 POC 测试阶段,SSIS 给了我令人满意的结果。但我对此仍有一些疑问,

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

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

4

2 回答 2

1

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

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

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

这是另一个问题的链接,该问题解决了如何以编程方式从 .NET 执行 dtsx/SSIS 包。你能从 .net 运行 SSIS 任务吗?

于 2013-10-03T06:46:32.207 回答
1

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

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

于 2013-10-03T07:13:05.890 回答