Troubleshooting “Cannot create an instance of OLE DB provider”

Today I am going to blog about a frequent issue that we come across while creating linked server-:

Cannot create an instance of OLE DB provider "MSDADASQL" for linked server "MyDB2"

In this scenario I was creating a linked server to a DB2 server, but everything explained in this blog holds good for any linked server.

This error mostly happens due to security issues with DCOM class MSDAINITIALIZE . We needed to alter the DCOM Class MSDAINITIALIZE security settings to make it work.

Following are the steps:

1. Open Component Services (Start>Run>DCOMCNFG)

2. Expand Component Services>Computers>My Computer>DCOM Config

3. From the list of DCOM components on the right side, select MSDAINITIALIZE and go to its properties:

clip_image002

4. Go to the Security Tab, Choose ‘Customize’ and click on the ‘Edit’ Button:
clip_image003

5. Add the Domain User who is accessing the linked server and ‘Allow’ all the permissions available (Local Launch, Remote Launch, Local Activation, Remote Activation). If you are connecting to SQL server using SQL account, you need to provide this permission to the account under which the SQL service is running.

6. Do this for all the 3 sections in the above screenshot.

In Windows Vista onwards, a system account called TrustedInstaller owns the MSDAINITIALIZE class and does not allow normal domain accounts to edit the properties of this class. MSDAINITIALIZE is greyed out because only TrustedInstaller has the write permissions on it.

To edit the Security settings, we followed the below steps:

1. Start > Run > Regedit

2. Find the Key: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{2206CDB0-19C1-11D1-89E0-00C04FD7A829}

3. Right Click>Permissions>Advanced>Owner Tab:

clip_image004

4. Change the owner to Administrators.

5. Now, grant ‘Full Control’ to Administrators:
clip_image005

After this you should be able to edit MSDAINITIALIZE security settings .

Hope this post would be helpful for you. Happy Coding!!

Author : Snehadeep(MSFT), SQL Developer Engineer, Microsoft

Reviewed by : Debarchan(MSFT), SQL Developer Engineer, Microsoft