Невозможно выполнить проверку подлинности Windows для SQL Server с помощью python

Мой код Python, показанный ниже, написан для создания соединения SQL Server с использованием проверки подлинности Windows. У меня есть ограничения на использование библиотеки adodbapi для подключения к базе данных.

Подскажите, пожалуйста, чего не хватает в этом коде? Я ссылался на документацию библиотеки, но там ничего не упоминается об аутентификации Windows.

Я ссылался на множество статей об этом исключении. Но они, похоже, не помогут понять природу исключения и его разрешение.

Многошаговая операция OLE DB вызвала ошибки. Проверьте каждое значение состояния OLE DB, если оно доступно. Никакой работы не было.

Код:

import configparser
import adodbapi
config = configparser.ConfigParser()
config.read("C:/plugin/configsql.ini")
_SERVER_NAME = config['SQL']['SERVER_NAME']
_DATABASE = config['SQL']['DATABASE']
conn = adodbapi.connect("PROVIDER=MSOLEDBSQL;Data Source={0};Database={1};Integrated Security = True;".format(_SERVER_NAME,_DATABASE))
print(conn)

Исключение:

Traceback (последний последний вызов):

Файл "C:\Arelle-master\venv1\lib\site-packages\adodbapi\adodbapi.py", строка 113, в connect
co.connect(kwargs)

Файл "C:\Arelle-master\venv1\lib\site-packages\adodbapi\adodbapi.py", строка 275, в connect
self.connector.Open() # Открытие соединения ADO

Файл "", строка 3, в Open
Файл "C:\Arelle-master\venv1\lib\site-packages\win32com\client\dynamic.py", строка 287, в ApplyTypes
result = self.oleobj.InvokeTypes(*(dispid, LCID, wFlags, retType, argTypes) + args)

pywintypes.com_error: (-2147352567, 'Исключение произошло.', (0, 'Поставщик', 'Многоэтапная операция OLE DB вызвала ошибки. Проверьте каждое значение состояния OLE DB, если оно доступно. Работа не выполнялась.', Нет, 1240640, -2147217887), нет)

Во время обработки вышеупомянутого исключения произошло другое исключение:

Traceback (последний последний вызов):

Файл "winAuthentication.py", строка 8, в
conn = adodbapi.connect("PROVIDER=MSOLEDBSQL;Data Source={0};Database={1};Integrated Security = True;".format(_SERVER_NAME,_DATABASE ))

Файл "C:\Arelle-master\venv1\lib\site-packages\adodbapi\adodbapi.py", строка 117, в connect
поднять api.OperationalError(e, сообщение)

adodbapi.apibase.OperationalError: (com_error(-2147352567, 'Произошло исключение.', (0, 'Поставщик', 'Многоэтапная операция OLE DB вызвала ошибки. Проверьте каждое значение состояния OLE DB, если оно доступно. Никакой работы не было выполнено. ', None, 1240640, -2147217887), None), 'Ошибка при открытии соединения с PROVIDER=MSOLEDBSQL;Data Source=MSSQLSERVER01;Database=TESTDB;Integrated Security = True;"')


person user2961127    schedule 28.01.2020    source источник


Ответы (1)


Вы пробовали Trusted_Connection=yes? Вот моя строка подключения, в которой используется проверка подлинности Windows (с использованием pyodbc), но должен быть тот же параметр подключения, а не встроенная безопасность.

conn = pyodbc.connect('Driver={SQL Server};'
                      'Server=ServerName;'
                      'Database=DatabaseName;'
                      'Trusted_Connection=yes;')

Или, возможно, Integrated Security = SSPI, упомянутый здесь http://adodbapi.sourceforge.net/quick_reference.pdf< /а>

 'Integrated Security=SSPI'
person FembotDBA    schedule 28.01.2020