У меня есть сценарий 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, будут очень полезны.