Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

Error message when you try to create an instance of an OLE DB provider in SQL Server: "Cannot create an instance of OLE DB provider"


View products that this article applies to.

Symptoms

Consider the following scenario:
  • You install Microsoft SQL Server 2005 or Microsoft SQL Server 2008.
  • You try to create or run a linked server query.
  • The linked server query is created or run under the context of a user who is not a local administrator.
In this scenario, you may receive an error message that resembles the following:
Cannot create an instance of OLE DB provider "provider_name" for linked server "linked_server_name"

↑ Back to the top


Cause

This issue can occur if the security settings for the MSDAINITIALIIZE DCOM class are incorrect.

↑ Back to the top


Resolution

To resolve this issue in Windows Vista and later versions of Windows, follow these steps, and start with step 1. If you are running an earlier version of Windows, start with step 7:
  1. Click Start, type regedit in the Search programs and files box, press Enter, and then click Yes.
  2. Locate the following subkey:
    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{2206CDB0-19C1-11D1-89E0-00C04FD7A829}
  3. Right-click {2206CDB0-19C1-11D1-89E0-00C04FD7A829}, click Permissions, and then click Advanced.
  4. On the Owner tab, under Change owner to, click Administrators, or click the user account that you want, and then click Apply.
  5. On the Permissions tab, grant the Administrators group or the user account Full Control permissions, and then click OK two times.
  6. Exit Registry Editor.
  7. Click Start, type Dcomcnfg in the Search programs and files box, and then press Enter.
  8. Expand Component Services, expand Computers, expand My Computer, and then click DCOM Config.
  9. Right-click MSDAINITIALIZE, and then click Properties.
  10. On the Security tab, under Launch and Activation Permissions, click Customize, and then click Edit.
  11. Add the Administrators group or the user account that you want.

    Note
    If you are running Windows Vista or a later version of Windows, add the user or group that you specified in step 4.
  12. Click to select the Administrators group or the user account
  13. Under Permissions for SYSTEM, click to select the following check boxes under Allow:
    • Local Launch
    • Remote Launch
    • Local Activation
    • Remote Activation
    Note If you connect to SQL Server by using a SQL Server account, you must grant these permissions to the account under which SQL Server is running.
  14. Click OK.
  15. On the Security tab, under Access Permissions, click Customize, and then click Edit.
  16. Click the Administrators group or user account, and then click to select the following check boxes under Allow:
    • Local Access
    • Remote Access
    Note Add the Administrator group or user account if it is necessary.
  17. Click OK.
  18. On the Security tab, under Configuration Permissions, click Customize, and then click Edit.
  19. Click the Administrator group or the user account, and then click to select the Full Control check box under Allow.
  20. Click OK two times.
  21. Exit Component Services.

↑ Back to the top


More Information

In Windows Vista and later versions, the TrustedInstaller system account owns the MSDAINITIALIZE DCOM class. The TrustedInstaller system account is the only account that has write permissions on the MSDAINITIALIZE class. Therefore, in Windows Vista and later versions, you must perform steps 1 through 6 in the "Resolution" section before you edit the properties of the MSDAINITIALIZE class.

↑ Back to the top


Keywords: kb, kbsurveynew, kbprb, kbtshoot, kbentirenet

↑ Back to the top

Article Info
Article ID : 2647989
Revision : 1
Created on : 1/7/2017
Published on : 5/14/2012
Exists online : False
Views : 197