不可能通过powershell读取sql数据库:

2019-08-16 作者:数据库   |   浏览(77)

在SQL SEPRADOVE宝马7系 2009 奥迪Q52下用Windows 身份认证的登陆名创立了五个拜会ORACLE数据库的链接服务器xxxxx,测量试验成功,木至极,但是任何登陆名使用该链接服务器时,报如下错误:

背景:

先是sqlserver 链接oracle能够通过三个访谈接口:

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

     全新服务器,要求扩充属性监控,开采无法通过powershell读取品质目标

“MSDAORA” 和“OraOLEDB.Oracle”

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

缓慢解决方式:

1、“MSDAORA”访谈接口是由Microsoft OLE DB Provider for Oracle提供的,这里提出不选用此接口进行链接。通过该访谈接口创立的链接服务器在拓展查询oracle表(带数据类型CLOB、BLOB字段)时会报那些颠倒是非“ 链接服务器""的 OLE DB 访谈接口 "MSDAORA" 再次回到了新闻 "爆发了多个 Oracle 错误,但力不可能及从 Oracle 中查找错误新闻。"。 链接服务器""的 OLE DB 访问接口 "MSDAORA" 再次来到了音讯 "数据类型不被扶助。"。 新闻 7321,等级 16,状态 2,第 1 行 希图对链接服务器 "" 的 OLE DB 访谈接口 "MSDAORA" 试行查询"select * from SYS_MESSAGE"时出错。”

 

  • Open the Registry Editor by going to the Start Menu and selecting Run…, then type “regedit”, and click the OK button.
  • Navigate to the HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurePipeServerswinreg registry key.
  • Right click on the "winreg" key and select Permissions. Add users or groups to which you want to grant Read access.
  • Exit Registry Editor and restart Windows.

2、“OraOLEDB.Oracle” 访问接口是由oracle 的Oracle Probider for OLE DB 驱动提供的。它解决了三个数据库类型分裂的的主题材料。而且假若须要使用布满式事务,必须使用它来创立链接服务器。后文仲有详实介绍。 在开创在此之前,在SQLSEWranglerVEKuga中,链接服务器->访问接口->OraOLEDB.Oracle->右键属性,选中 "Allow inprocess" (汉语为:允许进度内) 这一步是使我们选用的OraOLEDB.Oracle接口张开执行操作。如未安装会报如下错误: “不大概初步化链接服务器 "null" 的 OLE DB 访谈接口 "OraOLEDB.Oracle" 的数据源对象"

此刻须要在“服务器对象”——>“链接服务器”——>“访谈接口”下,找到OraOLEDB.Oracle选项,单击右键接纳属性,然后在探问接口选项下勾选“允许进程内”(Allow inprocess)。就能够减轻地点难题,有的时候候,也许需求再行新建此链接服务器。

 

数据库 1

服务器 windows server 2008 r2 64位  或 win 7 enterprise 64位

 

  1. 服务器上必要安装Oracle 陆十一位的客户端(

数据库,鬼子给出了一个解决这一个难点的步调,特别详细严格,大约一帆风顺。能够作为参照学习的好材质:

安装完毕后SQL Server的走访接口上会新扩大”OraOLEDB.Oracle”(安装叁九人客户端,看不到)。

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:

安装:Windows Server2008 R2下安装Oracle 10g

  1:Run “dcomcnfg.exe”. Navigate to “Component Services -> Computers -> My Computer -> DCOM Config”.

  1. 陈设”OraOLEDB.Oracle”属性->启用项“允许进度内”;

  2. 新建链接服务器(名称 自定 :ORA_LINK)

  3. 填写链接服务器名称->采取访谈接口”Oracle Provider for OLE DB”

  4. 填写产品名称->Oracle

  2:Open the properties page of “MSDAINITIALIZE”.

6. 数据源填写Oracle客户端/服务端配置的连接地址的劳务名(tnsnames.ora中的服务名)

  3:Copy the “Application ID” on the properties page.

  (listener.ora/sqlnet.ora/tnsnames.ora配置文件详解)

  4:Close out of “dcomcnfg”.

  (sqlnet.ora<->Oracle Net Manager  概要文件)(tnsnames.ora<->Oracle Net Manager 服务命名)(listener.ora<->Oracle Net Manager 监听程序)

  5:Run “regedit”. Navigate to “HKEY_CLASSES_ROOTAppID{???}” with the ??? representing the application ID you copied in step #3.

7. 填写Oracle的登录账号密码:选用项->安全性->选择”使用此安全上下文创立连接”,并填入Oracle登陆名与登入密码

  6:Right click the “{???}” folder and select “Permissions”

SELECT * FROM OPENQUERY(ORA_LINK,'SELECT * FROM USERNAME.TABLE');

  7:Add the local administrators group to the permissions, grant them full control.

 

  8:Close out of “regedit”.

Oracle 的 透明网关(transparent Gateway) 也得以兑现 Oracle 能够与 其余异构数据库的团结

  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.

 

 

本文由www.bifa365365.com发布于数据库,转载请注明出处:不可能通过powershell读取sql数据库:

关键词: www.bifa3653