3

我希望了解如何使用 Oracle.DataAccess.dll 在 .Net 中实现 OID 连接字符串。

OID 连接字符串的格式如下:ldap://servname:389/instance,cn=OracleContext

当我使用它作为我的数据源时,我收到这个错误:..is an invalid connection string attribute

连接到 Oracle 的 OID 的格式是什么?

谢谢你,斯科特

4

2 回答 2

10

Oracle 的想法是在 TNS Admin 目录(通常为 $ORACLE_HOME/network/admin)的 LDAP.ORA 文件中配置 LDAP 服务器(在您的情况下为 OID)。你有类似的东西:

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

(甚至没有用户 ID 和密码)。

更新:

如果您无法更改 TNS Admin 目录,我知道的唯一选择是使用包含所有详细信息(服务器名称、端口、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
于 2011-01-07T19:45:48.297 回答
0

在被转移了近两年之后,我回到了这个问题并找到了解决方案。

首先,Oracle 指出在 oracle 的托管库中不支持 ldap 支持。嘘。http://www.oracle.com/technetwork/database/windows/downloads/odpmbetainstall-1696475.html

其次,使用这个线程: How do I query LDAP from C# to resolve Oracle TNS hostname while using managed ODP.NET?

我能够为 tns 连接字符串安装 ldap 查找,并最终将其传递给 nhibernate。

我希望Oracle最终支持ldap。

于 2013-04-10T19:22:29.363 回答