2013-10-03 52 views
0

我們有一個SQL Server作業,用於將數據從一臺sql server轉移到其他sql server m/c。兩臺m/c都位於不同的位置。目前我們使用Linked server,但性能非常慢。 因此,我們認爲利用轉移POC SSIS.During測試階段數據的SSIS給了我滿意的results.But我仍然對本一些問題,需要幫助SSIS

  • 爲便於環境的變化(DEV到UAT和UAT爲正式版)我使用SQL服務器連接管理器。所有必需的連接字符串都存儲在[SSIS配置]表中。但此表中的連接字符串爲純文本格式。有什麼辦法來加密這些連接字符串[請注意,我不是在談論包級別加密。只有當連接字符串在不同的環境中是相同的時,包級別的加密纔是有用的,這在我的情況下是不可能的]
  • 我應該怎樣處理不同的錯誤,SSIS中是否有錯誤處理機制?但仍不清楚它的使用

作爲替代路徑,我可以在IDatareader中使用SQLBulkCopy。 在此先感謝..

回答

1

我建議你使用Windows的可信認證,因爲在連接字符串中不需要登錄或密碼,也不是密碼包,因爲沒有敏感信息。除非你有很好的理由,否則你應該停止使用SQL Server登錄(而不是Windows登錄)。

這兩個SQL Server都需要成爲同一個域的一部分,並且您需要將SQL代理帳戶設置爲可訪問所需數據庫的Windows帳戶。

+0

:這是主要問題,兩臺服務器不在同一個域..這迫使我使用SQl服務器認證...我不知道爲什麼MS沒有提供任何加密機制... – Sachin

+0

根據這個:http://www.red-gate.com/supportcenter/content/knowledgebase/SQL_Data_Compare/KB200712000207你只需要創建一個本地Windows用戶的一個具有固定登錄名和密碼的SQl服務器,然後Windows身份驗證應該工作accrasss域。 –

1

最好的方法是使用單獨的應用程序啓動您的SSIS包。這個控制檯應用程序將能夠從設置文件中讀取加密的密碼並將其解密以執行(用於插入到連接字符串中)。

然後,您的控制檯應用程序可以循環訪問程序包中的所有連接管理器,並根據連接管理器的名稱將適當的連接字符串應用於每個連接管理器。

您需要引用一個SQL Server SDK程序集才能使其工作。此外,必須在每臺將執行此應用程序的計算機上安裝SQL Server集成服務,否則SSIS將無法運行。

下面是解決如何以編程方式從.NET執行dtsx/SSIS包的另一個問題的鏈接。 Can you run an SSIS task from .net?

+0

,你給了我新的Idea.Thanks.Thanks.I正在考慮單元級別加密 – Sachin