Sql-Server-2008-R2

SSIS 中的數據庫連接問題

  • March 28, 2016

我在我的 SSIS 項目中為數據庫連接創建了一個連接管理器。我選擇 SQLClient Data Provider 並選擇 SQL Server 身份驗證模式進行登錄。測試連接成功。在腳本任務中,我使用以下來獲取連接字元串:

string strConnection = Dts.Connections["Target_DB"].ConnectionString;

在調試時,我只發現以下內容:

Data Source=ServerName;User ID=myid;Initial Catalog=product;Persist Security Info=True;

如您所見,密碼失去,這就是我無法連接到數據庫伺服器的原因,即使測試連接成功。

這是否意味著它不保存密碼,如果是,那麼我該如何連接到數據庫。

- - - - - - - -更新 - - - - - - - - - - -

我在 ScriptTask 中添加了 App.config 文件並在其中添加了 ConnectionString 節點。然後我嘗試以下列方式訪問連接字元串但未能成功,它顯示了一些其他連接字元串,而不是我編寫的連接字元串:

string strConnection = ConfigurationManager.ConnectionStrings["CRMConnectionString"].ConnectionString;

在此處輸入圖像描述

謝謝

您無法訪問連接字元串中的密碼。這是一種安全措施,無論您的包裹保護級別如何。

在此處輸入圖像描述

如果您需要使用現有的連接,那麼您需要遵循 Todd McDermid 的文章在 SSIS 腳本任務中正確使用連接或 Matt Masson 的在腳本中訪問 OLEDB 連接管理器中列出的範例

個人說明,我從未設法讓 Matt 的版本正常工作,但由於他是 SSIS 團隊的 PM,我會假設這是我的失敗實施而不是他的實施。

訪問密碼的另一種方法是使用配置,因為它標記為 2008。無論是 XML 還是 SQL Server,都將連接字元串儲存在外部儲存庫中,並將值分配給 SSIS 變數。然後,將表達式應用到連接管理器的ConnectionString屬性。在您的腳本任務中,您將能夠訪問包含密碼的完整連接字元串。

引用自:https://dba.stackexchange.com/questions/133491