Sql-Server-2008-R2
SSIS 中的數據庫連接問題
我在我的 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
屬性。在您的腳本任務中,您將能夠訪問包含密碼的完整連接字元串。