2012年4月25日 星期三

連結伺服器"linked server"的OLE DB 提供者"IBMDADB2.DB2COPY1" 報告了錯誤。拒絕存取。

        當我建立好DB2的連結伺服器後,我試著使用SELECT語法去查詢連結伺服器的資料,結果出現如下錯誤

        訊息7399,層級16,狀態1,行1
        連結伺服器"linked server"的OLE DB 提供者"IBMDADB2.DB2COPY1" 報告了錯誤。拒絕存取。
        訊息7350,層級16,狀態2,行1
        無法從連結伺服器"DB2TEST" 的OLE DB 提供者"IBMDADB2.DB2COPY1" 取得資料行資訊。

        這個錯誤我查到兩種解決方法:
  •  一、使用如下命令啟用AllowInProcess(但不建議啟用它喔,為何不建議請參考第二種)
EXEC master.dbo.sp_MSset_oledb_prop N'IBMDADB2.DB2COPY1', N'AllowInProcess', 1
GO

1.在命令列輸入dcomcnfg

2.在[元件服務]\[電腦]\[我的電腦]右鍵選[內容]



3.切換到[預設內容]頁籤
  • [在這台電腦上啟用DCOM]打勾
  • [預設驗證等級][連線]
  • [預設模擬等級][識別][模擬]



4.在[元件服務]\[電腦]\[我的電腦]\[DCOM設定]下,右邊窗格找到[MSDAINITIALIZE],右鍵選[內容]


5.切換到[安全設定]頁籤
  • 啟動和啟用權限
  • 存取權限
  • 設定權限
以上三項請選[自訂][編輯]後,將SQL Server服務啟動帳號加入,給定完整權限


 
6.重啟Server

0 意見:

張貼留言