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"
Cause
This issue can occur if the security settings for the MSDAINITIALIIZE DCOM class are incorrect.
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:
-
Click Start, type regedit in the Search programs and files box, press Enter, and then click Yes.
-
Locate the following subkey:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{2206CDB0-19C1-11D1-89E0-00C04FD7A829}
-
Right-click {2206CDB0-19C1-11D1-89E0-00C04FD7A829}, click Permissions, and then click Advanced.
-
On the Owner tab, under Change owner to, click Administrators, or click the user account that you want, and then click Apply.
-
On the Permissions tab, grant the Administrators group or the user account Full Control permissions, and then click OK two times.
-
Exit Registry Editor.
-
Click Start, type Dcomcnfg in the Search programs and files box, and then press Enter.
-
Expand Component Services, expand Computers, expand My Computer, and then click DCOM Config.
-
Right-click MSDAINITIALIZE, and then click Properties.
-
On the Security tab, under Launch and Activation Permissions, click Customize, and then click Edit.
-
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. -
Click to select the Administrators group or the user account
-
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.
-
-
Click OK.
-
On the Security tab, under Access Permissions, click Customize, and then click Edit.
-
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.
-
-
Click OK.
-
On the Security tab, under Configuration Permissions, click Customize, and then click Edit.
-
Click the Administrator group or the user account, and then click to select the Full Control check box under Allow.
-
Click OK two times.
-
Exit Component Services.
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.