部分原因是在完全安装 Oracle 客户端时遇到版本冲突或位数问题,我的开发团队(我是其中的成员)一直在转向使用Oracle Instant Client并避免在我们的开发机器上安装大多数新项目。这已经很有效了,甚至到了我们使用此设置部署到生产的程度。由于我们主要是一家 .NET 商店,因此我们使用本机客户端(带有 .NET 包装器),而不是 Java 客户端。
现在客户端要求我们向 LDAP 服务器注册数据库服务并使用 LDAP 服务器进行名称查找。他们提供sqlnet.ora
和ldap.ora
显示文件(以及伴随的加密的配置文件)是正确的。特别是,该sqlnet.ora
文件确实将 LDAP 指定为查找网络服务名称的可能来源:
names.directory_path=(tnsnames,ldap)
Run Code Online (Sandbox Code Playgroud)
我相信我正在使用的机器可以使用 LDAP 访问服务,因为我能够使用 SQL Developer(它允许我直接输入 LDAP 信息)来访问该服务。假设它们是正确的,如何让 Instant Client 识别此配置并使用 LDAP 进行名称查找?
我已尝试将TNS_ADMIN
环境变量设置为包含所提供文件的目录,虽然这对于使 Instant Client 识别tnsnames.ora
文件很有效,但似乎不足以让它开始查看 LDAP。以下是结果(更改了路径、用户名和密码):
(以下命令恰好是 Windows 命令提示符,但我想在 Linux 上也可以执行类似的操作。这里sqlplus
看到的也是 Instant 版本,在同一目录中附带了 Instant Client 二进制文件。)
C:\TEMP>SET TNS_ADMIN=C:\path\to\sqlnet\ldap\and\tnsnames\ora\files
C:\TEMP>echo %TNS_ADMIN%
C:\path\to\sqlnet\ldap\and\tnsnames\ora\files
C:\TEMP>sqlplus.exe USERNAME/PASSWORD@LOCALTNSNAME
SQL*Plus: Release 11.2.0.2.0 Production on Mon Jul 7 10:22:25 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Produ
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
C:\TEMP>sqlplus.exe USERNAME/PASSWORD@LDAPTNSNAME
SQL*Plus: Release 11.2.0.2.0 Production on Mon Jul 7 10:24:21 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
Run Code Online (Sandbox Code Playgroud)
是否有可以添加到此问题的 TNS、LDAP 或即时客户端(甚至只是普通的 Oracle 客户端)的标签?我找不到任何。
小智 2
将sqlnet.ora
和ldap.ora
文件放入您的目录中$ORACLE_ADMIN
,并确保设置环境变量。我做了我的TNS_ADMIN
目录
(Linux) 我的 .bashrc
export TNS_ADMIN=/opt/oracle/instantclient_12_1/network/admin
export ORACLE_ADMIN=${TNS_ADMIN}
[ku14lts:/opt/oracle/instantclient_12_1/network/admin]
$ ls
ldap.ora sqlnet.ora tnsnames.ora
Run Code Online (Sandbox Code Playgroud)
我能够连接到不在我的数据库中的数据库tnsnames.ora
归档时间: |
|
查看次数: |
9474 次 |
最近记录: |