Подключение к базе данных с помощью клиента Oracle и Kerberos с Python - PullRequest
0 голосов
/ 18 июня 2019

У меня есть сценарий Python, который в основном использует клиент Oracle x_Oracle для подключения к серверу базы данных, и после подключения я могу выполнять свои SQL-запросы.

Теперь, когда мои учетные данные БД истекли, и я вынужден использовать аутентификацию Kerberos, о которой я понятия не имею. Ранее просто работал бы следующий код:

conn_str = u'username/password@dbx1.ct.com:1521/dbx1.ct.com'
    conn = cx_Oracle.connect(conn_str)
    c = conn.cursor()
    c.execute(
        "select DISTINCT ITEM_ID,  UOM,  from SMCFS93 where item = '" + item + "'")
    for row in c:
        print(row)

Но теперь мне нужно использовать kinit для генерации тикета, и у меня есть файл C:\kerberos\krb5.conf и файл C:\krb5cc_User, которые я указал путь в SQL-разработчике, а затем я могу подключиться к своему серверу БД.

Метод работает нормально, если кто-то хочет подключиться к БД с помощью разработчика SQL, но я не могу понять, как заставить это работать в Python.

Я попытался создать подпроцесс, чтобы каждый раз вводить kinit и генерировать тикет, и попробовал несколько ответов на stackoverflow, но я не могу подключиться к своей базе данных. Любые предложения о том, как подключить сервер БД с помощью Kerberos, будут очень полезны.

1 Ответ

0 голосов
/ 20 июня 2019

Этот документ содержит информацию о том, как настроить клиент для аутентификации на сервере Oracle с использованием Kerberos.

Oracle Configuring Kerberos Authentication

...