设为首页收藏本站
查看: 84|回复: 0

[PHP] CannotcreateaninstanceofOLEDBproviderOraOLEDB.Oracle

[复制链接]

论坛元老

Rank: 6Rank: 6

积分
34274
主题
17031
UID
1347
M币
67
贡献
17176

  • 发表于 2018-7-11 04:36:00 | 显示全部楼层 |阅读模式
    在SQL SERVER 2008 R2下用Windows 身份认证的登录名创建了一个访问ORACLE数据库的链接服务器xxxxx,测试成功,木有问题,但是其它登录名使用该链接服务器时,报如下错误: 消息 7302,级别 16,状态 1,第 1 行 Cannot create an instance of OLE DB provide

    在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.
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    在我站开通SVIP可同时获得17个站点VIP资源 立即登录 立即注册
    快速回复 返回顶部 返回列表