`

关于连接Oracle数据库 出现"找不到Oracle 客户端和网络组件" 的问题

阅读更多

最近大家在服务器上运行ASP或.net程序连接Oracle的时候出现报“找不到Oracle 客户端和网络组件”的错,错误信息类似如下两种:
1:
System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.
但是程序在自己开发机上运行却一切正常。

2:
System.Exception: System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本。 在 System.Data.OracleClient.OCI.DetermineClientVersion() 在 System.Data.OracleClient.OracleInternalConnection.OpenOnLocalTransaction(String userName, String password, String serverName, Boolean integratedSecurity, Boolean unicode, Boolean omitOracleConnectionName) 在 System.Data.OracleClient.OracleInternalConnection..cto

经查原因如下:
这是Oracle 9i release 2 (9.2.0.1)客户端安装程序的bug。例如安装到c:\oracle\ora92目录下,该目录及以下子目录的访问权限缺省应该是administrators和system完全控制,Authenticated Users读取和运行。
安装程序对于Authenticated Users的权限设置有问题,造成该目录下的部分文件对于Authenticated Users无法访问,系统就报“找不到Oracle 客户端和网络组件”的错。
大家在自己电脑上开发的时候一般都是用本地的administrators组的用户登陆本机,所以访问没有问题。因为安装程序对于oracle目录及子目录的administrators的访问权限设置正确。

二个解决办法:
1、安装好Oracle 9i client后再安装Oracle 9i client 补丁,目前最新补丁是9.2.0.8,在\\10.10.200.210\software\oracle\patch目录下

2、只要给Authenticated Users 组加上访问Oracle Home目录的权限即可
以Administrator权限登录Windows.
启动Window 资源浏览器找到ORACLE_HOME目录,如C:\Oracle\ora92
右键弹出菜单,选择该目录共享与安全
点击 “安全” 页签
在组和用户名称列表中点击“Authenticated Users” 项.
在该用户的权限列表中,将“读取和运行”的选择框置为不选中状态
再次点击“读取和运行”的选择框,将其设置为选中状态
点击“高级”按钮并在权限项目中确定“Authenticated Users” 是否拥有“读取并运行”权限并应用于“该文件夹,及子文件夹和文件”. 如果不是,双击这样,并确保权限可以“应用于” “该文件夹,及子文件夹和文件”. 该项非常重要你一定要核查.
点击“确定” 按钮

Oracle官方对于这个问题的描述:

  Problem Description ------------------- When running an application that connects to Oracle and uses the Authenticated User privilege (such as Microsoft’s Internet Information Server (IIS)) via Oracle’s 9.2 client software and any of these programmatic interfaces
  1.Oracle Provider for OLE DB
  2. Microsoft OLE DB Provider for Oracle
  3. Oracle ODBC Driver
  4. Microsoft ODBC for Oracle
  5. Oracle Objects for OLE (OO4O) you will receive one of the following errors:
  a) Oracle Provider for OLE DB     Error Type: Microsoft OLE DB Service Components (0x80070005)     Access is denied.
  b) Microsoft OLE DB Provider for Oracle     Error Type: Microsoft OLE DB Provider for Oracle (0x80004005)     Oracle client and networking components were not found. These components    are supplied by Oracle Corporation and are part of the Oracle Version    7.3.3 or later client software installation. Provider is unable to    function until these components are installed.     Or     Error Type: Microsoft OLE DB Provider for Oracle (0x80004005)        Oracle error occurred, but error message could not be retrieved from    Oracle.
  c) Oracle ODBC Driver     Error Type: Microsoft OLE DB Provider for ODBC Drivers (0x80004005)     Specified driver could not be loaded due to system error 5 (Oracle in    OraHome92).
  d) Microsoft ODBC for Oracle     The Oracle(tm) client and networking components were not found. These    components are supplied by Oracle Corporation and are part of the Oracle     Version 7.3 (or greater) client software installation.     You will be unable to use this driver until these components have been    installed.
  e) Oracle Objects for OLE
  i. while using a GLOBAL.ASA file       Error Type: Active Server Pages (0x0)       An error occurred while creating object ’OraSession’.
  ii. not using a GLOBAL.ASA file       Error Type: Microsoft VBScript runtime (0x800A0046)       Permission denied: ’CreateObject’   (6)
  f) Other miscellaneous errors
  
  The Specified Module Could Not Be Found  Solution Description -------------------- You need to give the Authenticated User privilege to the Oracle Home by following these steps:
  i. Log on to Windows as a user with Administrator privileges.
  ii. Launch Windows Explorer from the Start Menu and and navigate to the    ORACLE_HOME directory.
  iii. Right-click on the ORACLE_HOME folder and choose the "Properties" option    from the drop down list. A "Properties" window should appear.
  iv. Click on the "Security" tab on the "Properties" window.
  v. Click on "Authenticated Users" item in the "Name" list (on Windows XP the    "Name" list is called "Group or user names").
  vi. Uncheck the "Read and Execute" box in the "Permissions" list (on Windows    XP the "Permissions" list is called "Permissions for Authenticated Users").    This box will be under the "Allow" column.
  vii. Check the "Read and Execute" box. This is the box you just unchecked.
  viii. Click the "Apply" button.
  ix. Click the "OK" button.
  x. You may need to reboot your computer after these changes have been made. Re-execute the application and it should now work.
  
  Explanation ----------- If you install Oracle9i Release 2 (9.2.0.1) on a computer running Windows with an NTFS partition, the contents of ORACLE_HOME directory will not be visible to users who are authenticated on that machine. These permissions were not set properly when the software was installed. Applications that were working fine with previous versions of Oracle software will stop working when they upgrade to Oracle 9.2.
  
  NOTE: The application will continue to work if the user has logged onto the     machine as an Administrator. Any application that is using the Authenticated User privilege will not work. A notable example would be IIS which might service some of the requests based on the Authenticated User privileges. To demonstrate the problem in further detail, you can log on to the operating system as an authenticated machine user. You won’t be able browse the contents of the ORACLE_HOME directory demonstrating your inability to load any Oracle DLLs or make a connection.
  
  References ----------  Bug:2498880 - Oracle 9I Release 2 Installation Issue on Windows 2000 NTFS         File System  Additional Search Words ----------------------- OLEDB

 

分享到:
评论

相关推荐

    Oracle 数据库连接组件 不需要Oracle客户端

    我见过最好的Oracle数据库连接组件,性能和效率甚至比官方的高,最爽的是它不需要安装Oracle客户端即可连接数据库。赶快破解了献给大家,希望大家喜欢。使用方法:一、不用安装,直接使用破解文件夹中的组件,使用...

    Oracle数据库连接客户端

    Oracle数据库连接客户端,本地未安装oracle数据库时,可通过该客户端连接到oracle服务器。需增加环境变量:变量名:TNS_ADMIN、变量值:D:/instantclient-basic-nt-11.2.0.3.0

    cx_Oracle连接oracle 11g数据库组件

    很多人使用python连接oracle 11g时会用到cx_Oracle库,但是如果没有安装数据库或者客户端往往会发现找不到相关组件或者是数据库连接失败,这时候需要在你python安装目录下面的pythonXX\LIB\site-packages\下放入这些...

    Oracle11服务端安装和客户端配置.doc

    Oracle 11g 服务端安装和客户端配置 Oracle 11g 服务端安装是 Oracle 11g 数据库管理系统的核心组件之一。该组件负责安装和配置 Oracle 11g 数据库服务器,提供了图形化的安装界面,用户可以通过移动和单击鼠标完成...

    基于ADO.NET技术访问Oracle数据库的实现.pdf

    DataSet中的数据与底层数据库不需要建立实时连接,即使断开与底层数据库的连接,或者关闭数据库,DataSet依然可用。 (2)数据提供程序:由Connection、Command、DataReader和DataAdapter四个核心类组成。 * ...

    oracle数据库11G初学者指南.Oracle.Database.11g,.A.Beginner's.Guide

    第3章 OFacle网络连接 3.1 使用Omcle Net Services 3.1.1 网络协议 3.1.2 优化网络带宽 3.1.3 连接 3.1.4 保持连接 3.1.5 定义一个位置 3.2 专用和共享服务器体系结构之间的差别 3.2.1 专用服务器 3.2.2 共享服务器 ...

    Oracle9i备课笔记——吕海东

    <3> Oracle数据库配置助手完成数据库的创建和启动 <4> Oracle智能代理启动 (10) 显示服务器创建完成信息: (11) 进行数据库管理员的密码重新设定: - 9i DS client端安装: (1) DISK1在客户机上 (2) 选择产品:...

    Oracle Database 11g初学者指南--详细书签版

    在技术会议和用户组会议上她乐于展现和分享有关Oracle数据库主题的思想.她的Email是michelle_malcher@ioug.org. 目录 封面 -14 封底 -13 扉页 -12 版权 -11 关于作者 -10 前言 -8 目录 -5 第1章 数据库基础 1 1.1 ...

    基于VB6开发的轻量级数据库查询客户端工具(附源码和安装)

    --修改了连接ORACLE的连接字符串,要求客户端安装ODAC组件(OLEDB); --数据库下拉列表默认上次选择的数据项。 V2.0.0 --支持Sybase平台,要求客户端安装Sybase OLEDB组件; V1.0.0 --支持SQL Server平台,...

    Oracle选择题.doc

    Oracle数据库启动时,需要三个必须的文件:数据文件、控制文件和日志文件。归档日志文件不是必须的。 * 数据文件:存储数据库中的数据。 * 控制文件:记录数据库的结构信息和日志信息。 * 日志文件:记录数据库的...

    ODAC 9.2 D7

    以在应用程序中建立连接 也可以使用ODAC的Net选项而无需在客户机上安装Oracle客户端来连接到Oracle 在这种情况下 ODAC仅需要TCP IP协议的支持 从而可以创建真正的 最小的数据库应用程序 与使用BDE开发 Oracle C S...

    ODAC 9.2 XE5

    以在应用程序中建立连接 也可以使用ODAC的Net选项而无需在客户机上安装Oracle客户端来连接到Oracle 在这种情况下 ODAC仅需要TCP IP协议的支持 从而可以创建真正的 最小的数据库应用程序 与使用BDE开发 Oracle C S...

    ODAC 9.2 XE4

    以在应用程序中建立连接 也可以使用ODAC的Net选项而无需在客户机上安装Oracle客户端来连接到Oracle 在这种情况下 ODAC仅需要TCP IP协议的支持 从而可以创建真正的 最小的数据库应用程序 与使用BDE开发 Oracle C S...

    unidac350d14pro

    在一般情况下是没问题,但如果这个表没有主键或where条件中的字段小数位很长导致误餐,就会产生更新找不到记录。TUdateSQL可以保证这点,运作灵活又透明。 4、对oracle支持非常好。别的不说,光是一个oracle连接的...

    PLSQL基础word

    PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件、以及如何设计并执行一个PL...

    DevArt UniDAC v.3.70.0.19 [D7-XE]

    在一般情况下是没问题,但如果这个表没有主键或where条件中的字段小数位很长导致误餐,就会产生更新找不到记录。TUdateSQL可以保证这点,运作灵活又透明。 4、对oracle支持非常好。别的不说,光是一个oracle连接的...

    delphi三层架构框架

    MateyFrame V5.0由中间层服务端、客户端框架、MateyWeb组件三部分组成,同时支持 Oracle、MSSQL、MySQL数据库。 中间层服务端 采用面向对象方法设计而成,具有稳定性强、安全性高、负载量大、可扩展性强等特性。 ...

    UniDAC 4.1.4 for D6-XE2

    在一般情况下是没问题,但如果这个表没有主键或where条件中的字段小数位很长导致误餐,就会产生更新找不到记录。TUdateSQL可以保证这点,运作灵活又透明。 4、对oracle支持非常好。别的不说,光是一个oracle连接的...

    UniDAC 2.70 源码版本 (For Delphi2010)

    在一般情况下是没问题,但如果这个表没有主键或where条件中的字段小数位很长导致误餐,就会产生更新找不到记录。TUdateSQL可以保证这点,运作灵活又透明。 4、对oracle支持非常好。别的不说,光是一个oracle连接的...

Global site tag (gtag.js) - Google Analytics