A linked server to access the Oracle database was created under SQL Server R2 with a login with Windows authentication xxxxx, the test was successful, the wood was faulty, but the other logins used the linked server reported the following error:
Msg 7302, Level 16, State 1, line 1th
Cannot create an instance of OLE DB provider "OraOLEDB.Oracle" for linked server "XXXXXX".
At this point you need to find the OraOLEDB.Oracle option under "Server Object", "Linked server" and "Access Interface", right-click to select the property, and then check "allow in-process" under the provider option (Let InProcess). To resolve the above problem, you may need to re-create the linked server again.
The foreigner gave a step to solve the problem, very detailed and rigorous, almost exhaustive. Good information that can be used as a reference for learning:
Ran into this issue where the linked server would work for users who were local admins on the server, and not for anyone E Lse. 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 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 and then click on "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.
Cannot create an instance of OLE DB provider "OraOLEDB.Oracle" for linked server "xxxxxxx".