Служба OID Oracle, Oracle.DataAccess и строки подключения - PullRequest
3 голосов
/ 07 января 2011

Я хочу понять, как реализовать строку подключения OID в .Net с помощью Oracle.DataAccess.dll.

Строка подключения OID имеет следующий формат: ldap: // servname: 389 / instance, cn = OracleContext

Когда я использую это в качестве источника данных, я получаю эту ошибку: .. является недопустимым атрибутом строки подключения

В каком формате подключаться к OID Oracle?

Спасибо, Скотт

Ответы [ 2 ]

9 голосов
/ 07 января 2011

Идея Oracle состоит в том, чтобы настроить сервер LDAP (OID в вашем случае) в файле LDAP.ORA в каталоге администратора TNS (обычно это $ ORACLE_HOME / network / admin).Там у вас есть что-то вроде:

DIRECTORY_SERVERS = (servname:389)
DEFAULT_ADMIN_CONTEXT = "dc=company,dc=com"
DIRECTORY_SERVER_TYPE = OID

Возможно, вам также потребуется адаптировать файл SQLNET.ORA:

NAMES.DIRECTORY_PATH= (LDAP, TNSNAMES)

Тогда ваша строка подключения будет просто:

Data Source=instance; User ID=scott; Password=tiger

(или даже без идентификатора пользователя и пароля).

Обновление:

Если вы не можете изменить каталог администратора TNS, единственный известный мне вариант - это использоватьСтроки подключения, содержащие все данные (имя сервера, порт, SID или имя службы).Существует три формата:

Синтаксис TNS:

Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=serername)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=instanceSID))); User ID=scott; Password=tiger

EZ Соединитесь с именем службы (обратите внимание на одну косую черту между именем сервера и именем службы):

Data Source=//servername:1521/servicename; User ID=scott; Password=tiger

EZ Соединитесь с SID (обратите внимание на двойную косую черту между именем сервера и SID):

Data Source=servername:1521//instanceSID; User ID=scott; Password=tiger
0 голосов
/ 10 апреля 2013

После почти двухлетнего перерыва я вернулся к этой проблеме и вроде как нашел решение.

Во-первых, Oracle отмечает, что поддержка ldap не поддерживается в управляемой библиотеке для Oracle.Бу.http://www.oracle.com/technetwork/database/windows/downloads/odpmbetainstall-1696475.html

Во-вторых, используя этот поток: Как запросить LDAP из C # для разрешения имени хоста Oracle TNS при использовании управляемого ODP.NET?

Мне удалосьзапустите поиск ldap для строки подключения tns и в конечном итоге передайте ее в nhibernate.

Я надеюсь, что в конечном итоге Oracle поддерживает ldap.

...