Cannot create an instance of OLE DB provider “OraOLEDB.Oracle” for linked server "xxxxxxx".

在SQL SERVER 2008 R2下用Windows 身份认证的登录名创建了一个访问ORACLE数据库的链接服务器xxxxx,测试成功,木有问题,但是其它登录名使用该链接服务器时,报如下错误:

消息 7302,级别 16,状态 1,第 1 行

Cannot create an instance of OLE DB provider "OraOLEDB.Oracle" for linked server "xxxxxx".

此时需要在“服务器对象”——>“链接服务器”——>“访问接口”下,找到OraOLEDB.Oracle选项,单击右键选择属性,然后在访问接口选项下勾选“允许进程内”(Allow inprocess)。即可解决上面问题,有时候,可能需要重新新建此链接服务器。

老外给出了一个解决这个问题的步骤,相当详细严谨,几乎面面俱到。可以作为参考学习的好资料:

Ran into this issue where the linked server would work for users who were local admins on the server, but not for anyone else. 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 you 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, then click “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.

时间: 2024-12-27 19:09:08

Cannot create an instance of OLE DB provider “OraOLEDB.Oracle” for linked server "xxxxxxx".的相关文章

Cannot obtain the required interface ("IID_IDBCreateCommand") from OLE DB provider "OraOLEDB.Oracle" for linked server xxxx

  今天遇到了一个关于LINKED SERVER查询报错的案例,链接服务器链接ORACLE数据库,测试没有错误,但是执行脚本的时候,报如下错误: Msg 7399, Level 16, State 1, Line 1 The OLE DB provider "OraOLEDB.Oracle" for linked server "xxxx" reported an error. Access denied. Msg 7301, Level 16, State 2,

数据库连接字符串 ODBC DSN,ODBC DSN-Less, OLE DB Provider,和"MS Remote" Provider

下面将简单介绍一下几种ADO连接方式:ODBC DSN,ODBC DSN-Less, OLE DB Provider,和"MS Remote" Provider. I.DSN oConn.Open "DSN=AdvWorks; UID=Admin; PWD=;" 注意:从MDAC2.1开始就不能够在使用这样的方式了,就是只把DSN文件名放在ConnectString中.你必须同时使用DSN,UID,PWD标志.例如下面的方式在MDAC 2.1中将会出错:oConn.

win2003没有OLE DB Provider for SQLServer驱动,可安装sqlserver2000或者安装MDAC2.6,适用于winxp、win2003

另外如果Delphi7中没有MIcrosoft OLE DB Provider for SQLServer,可以下载下sqloledb.dll,然后在储存的C:\Program Files (x86)\Common Files\System\ole db 文件夹下运行 regsvr32注册dll(32位用法),数据源连接处即可有MIcrosoft OLE DB Provider for SQLServer出现!

sql server2008 搭建链接服务器成功后查询时报Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI10" for linked server "XXXXX". 的解决方法

原文:sql server2008 搭建链接服务器成功后查询时报Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI10" for linked server "XXXXX". 的解决方法 这是由于链接的数据库服务器的版本与本地数据库服务器不一致,有人说要升到sp3,sp4,然后在执行什么语句之类的 我觉得太繁琐了,通过网上查询之后看

The operation could not be performed because OLE DB provider "SQLNCLI11" for linked server "server_name" was unable to begin a distributed transaction.

Question: insert into #tmp exec usp_xxxx 报错 The operation could not be performed because OLE DB provider "SQLNCLI11" for linked server "server_name" was unable to begin a distributed transaction. Answer: 将linkserver Enable Promotion of

无法执行该操作,因为链接服务器 "xxxxx" 的 OLE DB 访问接口 "SQLNCLI" 无法启动分布式事务

在存储过程中使用事务,并且使用链接服务器时,报类似下面的错误 链接服务器"****"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "没有活动事务.".消息 7391,级别 16,状态 2,过程 proc_SyncDiliveryData,第 20 行无法执行该操作,因为链接服务器 "*****r" 的 OLE DB 访问接口 "SQLNCLI10" 无法启动分布式事务. 度娘了很久,找到了

OLE DB Command transformation 用法

OLE DB Command transformation component 能够引用参数,逐行调用sqlcommand,This transformation is typically used for running parameterized queries. 1,自定义属性 OLE DB Command Transformation 是一个功能十分强大的组件,但是其配置属性却是十分简单,只有三个自定义属性,如图 SqlCommand :要执行的sql 命令,使用 ? 代替一个参数,参数

没有活动事务 链接服务器的 OLE DB 访问接口 "SQLNCLI" 无法启动分布式事务

在windows2003下执行分布式事务的时候出现如下情况. 一. 问题现象在执行分布式事务时,在sql server 2005下收到如下错误: 链接服务器"xxxxxxx"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "没有活动事务.". 消息 7391,级别 16,状态 2,过程 xxxxx,第 16 行 无法执行该操作,因为链接服务器 "xxxxx" 的 OLE DB 访问接口 "SQLNCLI&

MSDTC问题集:链接服务器的 OLE DB 访问接口 "SQLNCLI" 无法启动分布式事务

尊重原著作:本文转载自http://sfwxw456.blog.163.com/blog/static/631359742009321112120248/ 一. 问题现象在执行分布式事务时,在sql server 2005下收到如下错误: 链接服务器"xxxxxxx"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "没有活动事务.". 消息 7391,级别 16,状态 2,过程 xxxxx,第 16 行 无法执行该操作,因为链接服务器