`

关于连接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客户端即可连接数据库。赶快破解了献给大家,希望大家喜欢。使用方法:一、不用安装,直接使用破解文件夹中的组件,使用...

    .net不需要客户端无客户端 连接Oracle数据库附代码

    标题中的".net不需要客户端无客户端 连接Oracle数据库附代码"指的是在.NET环境中,使用特定的方法或库可以实现与Oracle数据库的连接,而无需在客户端安装Oracle的客户端软件。这通常意味着开发人员可以依赖于Oracle...

    delphi连接oracle(免装oracle客户端)测试

    8. **版本兼容性**:确保ODAC组件版本与Oracle数据库版本兼容,否则可能会遇到连接问题。 总之,通过使用ODAC组件,Delphi开发者可以在不安装Oracle客户端的情况下,方便地与Oracle数据库进行交互,大大简化了开发...

    一段无需安装Oracle客户端即可访问Oracle数据库的delphi控件

    标题中的“一段无需安装Oracle客户端即可访问Oracle数据库的Delphi控件”指的是在Delphi编程环境中,使用特定的第三方控件或组件库,可以实现与Oracle数据库的连接和交互,而不需要在用户机器上安装完整的Oracle...

    Delphi免客户端直连Oracle数据库

    标题中的“Delphi免客户端直连Oracle数据库”指的是在Delphi编程环境中,通过不依赖Oracle客户端软件的方式直接与Oracle数据库进行交互。这种技术通常利用Oracle的本地接口(如OCI,Oracle Call Interface)来实现,...

    Oracle客户端安装与新建数据源

    Oracle客户端是用于与Oracle数据库服务器通信的软件组件,它提供了连接到服务器的接口,使得应用程序能够执行SQL查询、事务处理和其他数据库操作。ODBC(Open Database Connectivity)是一种标准的数据库访问接口,...

    Oracle数据库连接客户端

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

    无需安装oracle客户端可以直接使用plsql连接oracle数据库

    标题中的“无需安装oracle客户端可以直接使用plsql连接oracle数据库”是指使用PL/SQL Developer这款工具进行Oracle数据库管理,而不需要在本地系统上完整安装Oracle客户端软件。PL/SQL Developer是Allround ...

    c# 链接oracle数据库(不安装客户端)

    确保选择正确的版本,因为不同版本的Instant Client可能与不同版本的Oracle数据库不兼容。 3. **配置环境变量**:安装完成后,需要设置一些环境变量,例如`TNS_ADMIN`,指向包含`tnsnames.ora`文件的目录。这个文件...

    oracle无客户端连接

    通过JDBC驱动程序,用户可以使用Java代码连接到Oracle服务器,执行SQL命令和处理结果集,无需本地Oracle客户端。 3. **ODBC(Open Database Connectivity)**:ODBC是另一种跨平台的数据库访问接口,允许应用程序...

    .net访问oracle数据库的方法(不安装oracle客户端)

    ### .NET访问Oracle数据库的方法(不安装Oracle客户端) 在日常的开发工作中,有时我们需要让.NET应用程序访问Oracle数据库,但为了节省资源或者简化部署步骤,我们可能并不希望在目标机器上安装完整的Oracle客户端...

    c# asp.net 读取 连接oracle数据库源码(不用安装oracle客户端)

    在IT行业中,数据库连接...通过这个“OracleTest”项目,开发者可以学习到如何在C# ASP.NET环境下,利用ODP.NET免客户端方式实现远程Oracle数据库的连接和数据操作。这种方法降低了对开发机器的要求,提高了开发效率。

    Oracle数据库plsql客户端

    Oracle数据库客户端是连接到Oracle数据库服务器的软件组件,它包含了用于网络通信、数据转换和服务的工具。客户端通常包括SQL*Plus、Oracle SQL Developer等工具,使得用户可以从各种操作系统上访问和管理Oracle...

    Oracle数据库客户端绿色版

    Oracle数据库客户端是一款用于连接到Oracle数据库服务器的工具,它提供了SQL查询、数据管理、数据库开发等功能。绿色版指的是不需要安装,可以直接使用的版本,通常包含了所有必要的组件,方便用户在不改变系统环境...

    sqlDbx连接数据库,不用安装Oracle客户端

    `sqlDbx`允许用户通过配置TNS(Transparent Network Substrate)来连接Oracle数据库,从而避免了Oracle客户端的庞大体积和安装复杂性。下面我们将深入探讨`sqlDbx`如何连接Oracle数据库以及TNS的配置方法。 首先,`...

    Oracle数据库管理器源码,不需要安装Oracle客户端

    总的来说,这个Oracle数据库管理器源码提供了一个轻量级的解决方案,使得开发者和DBA可以在没有完整Oracle客户端的情况下,进行基本的数据库管理和维护工作。它展示了如何利用Delphi和Oracle的 Thin驱动来构建这样的...

    C#程序连接ORACLE 11g数据库 免安装客户端运行 32位

    在这个场景中,我们关注的是使用C#编程语言连接到ORACLE 11g数据库,且在不安装完整客户端的情况下运行程序。以下将详细介绍如何实现这一目标。 首先,C#是微软.NET框架下的主要编程语言,它提供了丰富的库和工具...

    易语言无需安装oracle进行数据库操作

    总之,通过易语言实现无Oracle客户端的数据库操作,可以简化开发流程,降低系统维护成本,同时得益于易语言的易用性,使得数据库管理变得更加高效和便捷。这种方法适用于那些希望避免安装大型数据库客户端,但仍需...

    Oracle免安装客户端的安装包

    它包含了连接到Oracle数据库所需的基本组件,如OCI(Oracle Call Interface)、SQL*Plus和其他实用工具,适用于开发、测试或在没有完整Oracle客户端环境的系统上执行查询。以下是对Oracle Instant Client的详细解释...

    python连接Oracle数据库所需要的文件

    同时,确保Python环境和Oracle数据库版本兼容,因为cx_Oracle可能对某些旧版本的Oracle数据库不支持。 总之,Python连接Oracle数据库需要cx_Oracle库和Oracle Instant Client的DLL文件。正确配置这些组件并将其放置...

Global site tag (gtag.js) - Google Analytics