我希望了解如何使用oracle.dataaccess.dll在.NET中实现OID连接字符串。

OID连接字符串以这种格式:ldap:// servname:389/instance,cn = oraclecontext

当我将其用作数据源时,我会收到此错误:..是无效的连接字符串属性

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

谢谢你,斯科特

有帮助吗?

解决方案 2

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

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

第二,使用此线程:在使用托管odp.net时,如何查询C#中的LDAP来解决Oracle TNS主机名?

我能够为TNS连接字符串进行LDAP查找,并最终将其传递给Nhibernate。

我希望Oracle最终支持LDAP。

其他提示

Oracle的想法是在TNS Admin Directory(通常$ 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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top