一部は、Oracleクライアントの完全なインストールと競合するバージョンまたはビットの問題があるため、私の開発チーム(メンバー)は、Oracle Instant Clientを使用し、ほとんどの場合、開発マシンへのインストールを避けようとしています。新しいプロジェクト。これは、このセットアップを使用して実稼働環境に展開するまで、非常にうまく機能しています。私たちはほとんどが.NETショップであるため、Javaクライアントではなく、ネイティブクライアント(.NETラッパーを使用)を使用しています。
クライアントは、データベースサービスをLDAPサーバーに登録し、名前の検索にLDAPサーバーを使用することを要求しています。それらは、正しいと思われるファイル(および付随する暗号化構成ファイル)を提供sqlnet.ora
していldap.ora
ます。特に、sqlnet.ora
ファイルは、ネットサービス名を検索するための可能なソースとしてLDAPを指定します。
names.directory_path=(tnsnames,ldap)
SQL Developerを使用してアクセスできたため(LDAP情報を直接入力できるようになったため)、作業しているマシンがLDAPを使用してサービスにアクセスできると確信しています。それらが正しいと仮定すると、Instant Clientにこの構成を認識させ、名前検索にLDAPを使用するにはどうすればよいですか?
今まで試したこと
TNS_ADMIN
提供されたファイルを含むディレクトリに環境変数を設定しようとしましたが、これはInstant Clientにtnsnames.ora
ファイルを認識させるのには問題なく動作しますが、LDAPを調べ始めるには十分ではないようです。結果は次のとおりです(パス、ユーザー名、パスワードが変更されました):
(次のコマンドはたまたまWindowsコマンドプロンプトですが、Linuxでも同様のことが実行できると思います。ここでsqlplus
見られるのは、同じディレクトリ内のインスタントクライアントバイナリを伴うインスタントバージョンでもあります。)
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
サイドノート
この質問に追加できるTNS、LDAP、またはInstant Client(または通常のOracleクライアント)のタグはありますか?見つけることができませんでした。
where
(C:\TEMP\sqlplus.exe
)。具体的にsqlplus
は、マシンに「インストール」されていません。現在のディレクトリにあり、クライアントバイナリが横にあります。それは完全に別のディレクトリでオフになっているためtnsnames.ora
、TNS_ADMIN
環境変数を使用してファイルを確実に取得しています。
where oci.dll
しました。また、期待される結果も得られますC:\TEMP\oci.dll
。