Cannot create an instance of OLE DB provider "OraOLEDB.Oracle" for linked server "xxxxxxx".


在SQL SERVER 2008 R2下用Windows 身份認證的登錄名創建了一個訪問ORACLE數據庫的鏈接服務器xxxxx,測試成功,木有問題,但是其它登錄名使用該鏈接服務器時,報如下錯誤:

消息 7302,級別 16,狀態 1,第 1 行

Cannot create an instance of OLE DB provider "OraOLEDB.Oracle" for linked server "xxxxxx".

 

此時需要在“服務器對象”——>“鏈接服務器”——>“訪問接口”下,找到OraOLEDB.Oracle選項,單擊右鍵選擇屬性,然后在訪問接口選項下勾選“允許進程內”(Allow inprocess)。即可解決上面問題,有時候,可能需要重新新建此鏈接服務器。

clipboard

 

老外給出了一個解決這個問題的步驟,相當詳細嚴謹,幾乎面面俱到。可以作為參考學習的好資料:

Ran into this issue where the linked server would work for users who were local admins on the server, but not for anyone else. After many hours of messing around, I managed to fix the problem using the following steps:

  1:Run “dcomcnfg.exe”. Navigate to “Component Services -> Computers -> My Computer -> DCOM Config”.

  2:Open the properties page of “MSDAINITIALIZE”.

  3:Copy the “Application ID” on the properties page.

  4:Close out of “dcomcnfg”.

  5:Run “regedit”. Navigate to “HKEY_CLASSES_ROOT\AppID\{???}” with the ??? representing the application ID you copied in step #3.

  6:Right click the “{???}” folder and select “Permissions”

  7:Add the local administrators group to the permissions, grant them full control.

  8:Close out of “regedit”.

  9:Reboot the server.

  10:Run “dcomconfig”. Navigate to “Component Services -> Computers -> My Computer -> DCOM Config”.

  11:Open the properties page of “MSDAINITIALIZE”.

  12:On the “Security” tab, select “Customize” under “Launch and Activation Permissions”, then click the “Edit” button.

  13:Add “Authenticated Users” and grant them all 4 launch and activation permissions.

  14:Close out of “dcomcnfg”.

  15:Find the Oracle install root directory. “E:\Oracle” in my case.

  16:Edit the security properties of the Oracle root directory. Add “Authenticated Users” and grant them “Read & Execute”, “List folder contents” and “Read” permissions. Apply the new permissions.

  17:Click the “Advanced Permissions” button, then click “Change Permissions”. Select “Replace all child object permissions with inheritable permissions from this object”. Apply the new permissions.

  18:Find the “OraOLEDB.Oracle” provider in SQL Server. Make sure the “Allow Inprocess” parameter is checked.

  19:Reboot the server.

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM