如何在Windows中通过LDAP将Python 3.x cx_Oracle连接到Oracle DB?

问题描述 投票:0回答:2

已获得有关数据库的这些详细信息。

Userid & Password, 
LDAP Server : stpoid.corp.com:3060:3131, 
Context: cn=OracleContext,dc=corp,dc=com, 
DB server= PRD1. 

我可以使用sql developer和这些详细信息成功连接并查询数据库。我正在Windows 10上使用cx_oracle运行python3.6。

我阅读了https://stackoverflow.com/a/32151099/4799035中的指令,并模糊地发现我需要创建sqlnet.ora和/或tnsnames.ora和/或ldap.ora文件。但是这些说明在Windows上效果不佳。

但是我不确定我应该在Windows文件结构中的哪个位置创建它们?还是可以在任何地方创建它们并将其设置在路径变量中?变量的名称应该是什么?以及如何配置cx_oracle.connect()参数?我可以在cx_oracle.makedns()中传递这些参数吗?

任何文档或指南都会有所帮助。

python-3.x oracle ldap cx-oracle
2个回答
1
投票

请参见cx_Oracle手册条目Optional Oracle Net Configuration Files

如果cx_Oracle使用Instant Client库,则可以将文件放在network\admin子目录中,例如c:\instantclient_19_5\network\admin\tnsnames.ora。这是使用c:\instantclient_19_5中的库的应用程序的默认位置。

或者,如果将它们放在自定义目录中,例如,在c:\configfiles中,则可以将TNS_ADMIN环境变量设置为该目录。您可以在启动Python之前进行设置,或者(对于cx_Oracle 6或更高版本)可以在应用程序中进行设置:

import os
import cx_Oracle

# Do this before opening a connection
os.environ['TNS_ADMIN'] = 'c:\configfiles'

0
投票

您设法解决了这个问题吗?

© www.soinside.com 2019 - 2024. All rights reserved.