需要 SSIS 的帮助
Posted
技术标签:
【中文标题】需要 SSIS 的帮助【英文标题】:Need help for SSIS 【发布时间】:2013-10-09 17:57:49 【问题描述】:我们有一个 SQL Server 作业,用于将数据从一个 sql server 传输到另一个 sql server m/c。两个 m/c 位于不同的位置。目前我们使用链接服务器,但它的性能非常慢。 因此,我们想到了使用 SSIS 传输数据。在 POC 测试阶段,SSIS 给了我令人满意的结果。但我对此仍有一些疑问,
为了便于更改环境(DEV 到 UAT 和 UAT 到 Prod),我使用了 SQL 服务器连接管理器。所有必要的连接字符串都存储在 [SSIS 配置] 表中。但此表中的连接字符串为纯文本格式。有什么方法可以加密这些连接字符串[请注意,我不是在谈论包级加密。包级加密只有在不同环境中的连接字符串相同时才有用,这在我的情况下是不可能的].. 如何处理不同的错误,SSIS中是否有错误处理机制。我听说过检查点但仍然不清楚它的用途作为替代路径,我可以将 SQLBulkCopy 与 IDatareader 一起使用。 提前谢谢..
【问题讨论】:
【参考方案1】:我建议您使用 Windows 可信身份验证,因为连接字符串中不需要登录名或密码,也不需要包密码,因为没有敏感信息。除非你有充分的理由,否则你真的应该停止使用 SQL Server 登录(而不是 Windows 登录)。
两个 SQL Server 需要属于同一个域,并且您需要将 SQL 代理帐户设置为有权访问所需数据库的 Windows 帐户。
【讨论】:
:这是主要问题,两台服务器不在同一个域中..这迫使我使用SQl服务器身份验证...我不知道为什么MS没有提供任何加密机制... 据此:red-gate.com/supportcenter/content/knowledgebase/… 您只需要在其中一个 SQl 服务器上使用相同的登录名和密码创建一个本地 windows 用户,然后 windows 身份验证应该可以跨域工作。【参考方案2】:最好的方法是使用单独的应用程序来启动您的 SSIS 包。此控制台应用程序将能够从设置文件中读取加密密码并对其进行解密以执行(用于插入连接字符串)。
然后,您的控制台应用程序可以遍历包中的所有连接管理器,并根据连接管理器的名称将正确的连接字符串应用于每个连接管理器。
您需要引用 SQL Server SDK 程序集才能使其正常工作。此外,必须在将执行此应用程序的每台计算机上安装 SQL Server 集成服务,否则 SSIS 将无法运行。
这是另一个问题的链接,该问题解决了如何以编程方式从 .NET 执行 dtsx/SSIS 包。 Can you run an SSIS task from .net?
【讨论】:
,你给了我新的想法。谢谢。我在考虑单元级加密以上是关于需要 SSIS 的帮助的主要内容,如果未能解决你的问题,请参考以下文章