【发布时间】:2021-09-19 21:18:20
【问题描述】:
我正在使用 python 的 pyodbc 库来连接 Oracle 数据库。我的非产品服务器的身份验证设置为基本身份验证,因此我的连接字符串运行良好。
最初很难理解和设置正确的驱动程序,但后来确实成功了。这是连接代码的样子,并且在我的其他服务器上运行良好。
import textwrap
import pyodbc
connection_string = textwrap.dedent('''Driver={driver};
DBQ={hostname}:{port}/{sid};
UID={username};
PWD={password};
Connection Timeout=30;
Trusted_Connection="yes"
'''.format(driver = 'Oracle in instantclient_11_2',
hostname = <hostname>,
port = <port>,
sid = <sid>,
username = <username>,
password = <passwd>
))
connection = pyodbc.connect(connection_string)
令我惊讶的是,PROD 仅通过 LDAP 进行身份验证。我拥有 LDAP 服务器、上下文和数据库服务以及凭据。
我尝试将我的连接字符串创建为
connection_string = textwrap.dedent('''Driver={driver};
DBQ={hostname}:{port}/{sid};
UID={username};
PWD={password};
Connection Timeout=30;
Authentication=LDAP;
Trusted_Connection="yes"
'''.format(driver = 'Oracle in instantclient_11_2',
hostname = <ldap_server>,
port = 389,
sid = <db_service>,
username = <username>,
password = <passwd>
))
知道它不起作用我并不感到惊讶。尝试通过许多链接,但无法通过。有没有人尝试过这个,或者请让我知道我必须错过什么。
我绝对可以使用 LDAP 身份验证在 SQL Developer 中进行连接。由于此服务器上未配置 TNS 侦听器,因此我无法使用基本身份验证进行连接。
欢迎在这方面提供帮助。
【问题讨论】:
-
我在上面的问题中添加了我的答案。
标签: python oracle11g ldap database-connection cx-oracle