Microsoft – SQL Server – Msg 7302 – Cannot create an Instance of OLE DB Provider “OraOLEB.Oracle” for Linked Server

Background

One of our end-users upon issuing a Linked-Server Query was getting an error that read

“Microsoft – SQLServer – Msg 7302 – Cannot create an Instance of OLE DB Provider “OraOLEB.Oracle” for Linked Server”.

I re-issued  a similar query and confirmed that that the exact query was working for me.

This led me to believe that the error was user or permission related.

Tools

There are a few tools and areas that one uses to gather more diagnostic information:

  1. Use Microsoft\SysInternals Process Monitor tool
    • Initiate a Process Monitor Session
    • From MS Windows Task Manager, determine the “Process ID” for the MS SQL Server Service
    • Filter for all events excluding those whose result is marked “success”
  2. Using Local Policy, ensure that Object access failures are logged in the Event Viewer
    • Using the result from the areas briefly discussed above led us to determine that the user account lacked some permissions.

 

 

Resolution


To augment the user’s account:

  1. Via Component Services, offer more permissions by default to all DCOM objects
  2. Via Component Services, offer more permissions to specific DCOM Objects
    • MSDAINITIALIZE (DCOM Configuration \ MSDAINITIALIZE)
    • OraOLEDB.Oracle  (DCOM Configuration \ OraOLEDB.Oracle)
  3. Determine Account incubator Group – which group will “carry” the permissions
    • Local or Machine “Distributed Com Users” group
    • Custom Active Directory Group
    • Default Active Directory group such as “Domain Users’

Related Error Messages

  1. The machine-default permissions settings do not grant Local Activation permission for the Com Server application with CLSID {2206CDB0-19C1-11D1-89E0-00C04FD7A829} to the User <xxxx>.  Thus security permissions can be modified using the Component Services Administrative tool.

 

Images

Results of running “Microsoft\SysInternals” Tool

 

Filtered on:

  1. MS SQL Server’s Process ID (derived from Task Manager)
  2. Results not tagged Success

NamenotFound-v3

Results of running “Microsoft\SysInternals” Tool:

Review list of modules loaded:

a) msdaora.dll

Event Properties - msdaora.dll

Results of enabling auditing on failed object access (via Local Policy):

What to look for

  1. Source –> DCOM
  2. Type –> Error
  3. Event ID –> 10016

Event - DCOM - 10016 - whittedout

References

  1. Troubleshooting “Cannot create an instance of OLE DB provider”
    http://blogs.msdn.com/b/dataaccesstechnologies/archive/2011/09/28/troubleshooting-cannot-create-an-instance-of-ole-db-provider.aspx

4 thoughts on “Microsoft – SQL Server – Msg 7302 – Cannot create an Instance of OLE DB Provider “OraOLEB.Oracle” for Linked Server

    • MKM:

      Glad it worked for you. And, appreciative that you ‘ve chosen to share with the larger community.

      Continue to travel well,

      Daniel

    • Sedlin:

      Glad it help. Had a bit of problems and so sharing a credible solution with the community was important. And, thanks for sharing your effort at fixing the problem and your findings.

      Stay well,
      Daniel

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s