Використовуйте LDAP для пошуку імен у миттєвого клієнта Oracle


14

Частково внаслідок виникнення проблем із конфліктними версіями або розрядності при повному встановленні клієнта Oracle, моя команда розробників (я є членом) рухалася до використання Oracle Instant Client і уникала встановлення на наших розробних машинах для більшості нові проекти. Це вийшло досить добре, навіть до того, що ми використовуємо для виробництва з цим налаштуванням. Оскільки ми здебільшого .NET магазин, ми використовуємо рідний клієнт (із .NET обгортками), а не Java.

Тепер клієнт вимагає, щоб ми зареєстрували послугу бази даних на сервері LDAP і використовували сервер LDAP для пошуку імен. Вони надали sqlnet.oraі ldap.oraфайли (і супровідний файл конфігурації шифрування), які здаються правильними. Зокрема, у sqlnet.oraфайлі вказано LDAP як можливе джерело пошуку чистих імен служб:

names.directory_path=(tnsnames,ldap)

Я впевнений, що машина, з якою я працюю, може використовувати LDAP для доступу до сервісу, оскільки мені вдалося це зробити за допомогою SQL Developer (який дозволив мені вводити інформацію LDAP безпосередньо). Якщо припустити, що вони правильні, як я можу змусити миттєвого клієнта розпізнавати цю конфігурацію та використовувати LDAP для пошуку імені?

Що я спробував поки що

Я спробував встановити TNS_ADMINзмінну середовища в каталог, який містить надані файли, і хоча це працює чудово для того, щоб миттєвий клієнт розпізнавав 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

Бічна примітка

Чи є теги для TNS, LDAP або миттєвого клієнта (або навіть просто звичайного клієнта Oracle), які можна додати до цього питання? Я не міг знайти жодного.


Це правильно виконуваний файл? "де sqlplus"
Bjarte Brandt

@BjarteBrandt Так, я очікую, що це буде, коли я бігаю where( C:\TEMP\sqlplus.exe). Якщо бути більш конкретним, sqlplusце не "встановлено" на машині. Він просто сидить у поточному каталозі, біля нього - бінарні файли клієнта. Це безперечно збирання tnsnames.oraфайлу за допомогою TNS_ADMINзмінної середовища, оскільки це вимкнено у зовсім іншій каталозі.
jpmc26

@BjarteBrandt Щоб підтвердити використання правильних клієнтських бінарних файлів, я пішов і побіг where oci.dll. Це також дає очікуваний результат: C:\TEMP\oci.dll.
jpmc26

може бути проблемою домену. Ви також пробували з ім'ям FQ? (dbname_or_wwhat.domainname)
ik_zelf

2
@ ora-600 Вибачте, я забув про це питання. Виявилися проблеми з самими конфігураційними файлами, які нам надав наш клієнт. (Можливо, конфігураційний файл Kerberos; я не можу згадати з-під руки.) Що смішно, це те, що я працював у середовищі розробників, намагаючись це зробити, настільки ж проблематично було змусити його працювати в постановці, і все одно це не так наскільки я знаю, працюю в продажі. (Ми закінчили використання локальної назви TNS, щоб програма працювала.) Безперечно витрачені гроші на проект; навіть якщо / коли це працює в продажі, окупність інвестицій була б незначною порівняно з вартістю.
jpmc26

Відповіді:


1

Розмістіть файли 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

І я зміг підключитися до БД не в моїй tnsnames.ora

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.