2012年7月5日 星期四

[SSIS]使用者'User_Name' 的登入失敗


        原本設計的SSIS封裝可手動執行無誤,但是為了讓前端應用程式可呼叫該封裝,我用如何用預存程序以最小權限原則呼叫遠端SSIS的方式來做,結果我手動執行該作業卻出現如下錯誤:

以下列使用者的身分執行: srv001t\test。...32 位元版本 9.00.4035.00  Copyright (C) Microsoft Corp 1984-2005. All rights reserved.    
已啟動:  上午 10:46:26  
錯誤: 2012-07-05 10:46:30.89     
代碼: 0xC0202009     
來源: IS封裝測試 連接管理員 "SRV001_cm"     
描述: SSIS 錯誤碼 DTS_E_OLEDBERROR。發生 OLE DB 錯誤。
錯誤碼: 0x80040E4D。  有 OLE DB 記錄可用。
來源: "Microsoft SQL Native Client"  
Hresult: 0x80040E4D  
描述: "使用者'SRV001T\test' 的登入失敗。"。  錯誤結束  
錯誤: 2012-07-05 10:46:30.91     
代碼: 0xC020801C     
來源: 資料流程工作 OLE DB來源 [8263]     
描述: SSIS 錯誤碼 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。對 "SRV001_cm" 連接管理員呼叫 AcquireConnection 方法失敗,錯誤碼為 0xC0202009。在此之前可能已公佈過錯誤訊息,說明 AcquireConnection 方法呼叫為何失敗的詳細資訊。  錯誤結束 ...
        觀察事件檢視器有出現如下的失敗訊息

        我想說這方法也試了好多次,正式機也這樣實作過並沒有發生問題,為了釐清是權限設定有誤還是該SSIS封裝的問題,我把該作業的SSIS封裝換成一個簡單發送mail的封裝試試,結果手動執行該作業成功執行無誤,那看來是SSIS封裝的問題了,

        剛好我那篇呼叫遠端SSIS的方法也有提到類似登入失敗的錯誤,加上此次錯誤訊息裡有提到連接管理員的設定,我想會不會也是類似的解法呢?我打開封裝的連接管理員一看,我還真是選[使用Windows驗證],後來改用[使用SQL Server驗證],問題就解決囉

        網路上有找到類似的錯誤,但狀況不太一樣,所以解法也不同,供各位參考


0 意見:

張貼留言