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