Я никогда не задаю вопросы форумам, так как обычно могу найти ответ где-нибудь в Интернете.
Однако в данном случае я не могу.
Сводка: я могу подключиться к базе данных и запросить ее с помощью проверки подлинности Kerberos через Azure Data Studio и tsql с помощью FreeTDS. Я не могу подключиться к pyodbc. Я безуспешно пробовал десятки различных конфигураций.
Моя конечная цель - подключиться к БД сервера MSSQL с помощью python.
Спасибо за любой вклад.
Фон
локальный компьютер macOS 10.15.4 Подключен к VPN, необходим для проверки подлинности Kerberos Успешно запрошен БД из базы данных Azure Data Studio - Microsoft SQL Server 2016
FreeTDS
tsql -S -U 'directory \ username' -> Работает, может запрашивать БД
isql
isql dsn_name 'каталог \ имя пользователя' 'пароль'
ошибка DIAG [42000] [FreeTDS] [SQL Server] Ошибка входа. Логин из ненадежного домена и не может использоваться с аутентификацией Windows.
isql dsn_name 'каталог \ имя пользователя'
ошибка: DIAG [42000] [FreeTDS] [SQL Server] Ошибка входа. Логин из ненадежного домена и не может использоваться с аутентификацией Windows.
pyodbc
cnxn = pyodbc.connect ('DSN = dsn_name; Trusted_Connection = yes')
ошибка: pyodbc.ProgrammingError: ('42000', '[42000] [FreeTDS] [SQL Server] Ошибка входа. Вход из ненадежного домена и не может использоваться с проверкой подлинности Windows. (18452) (SQLDriverConnect)')
cnxn = pyodbc.connect ('DSN = dsn_name; UID = directory \ username; PWD = "пароль"')
ошибка: DIAG [01000] [FreeTDS] [SQL Server] Ошибка подключения адаптивного сервера pyodbc.OperationalError: ('08001', '[08001] [FreeTDS] [SQL Server] Невозможно подключиться к источнику данных (0) (SQLDriverConnect) » )
Конфигурация
krb5.conf
libdefaults
default_realm = домен
[царства]
domain_same_as_default = {
kdc = kdc_address
}
odbc.ini
[dsn_name]
Описание = Сервер MSSQL
Драйвер = FreeTDS
Servername = имя_сервера
odbcinst.ini
[FreeTDS]
Описание = Драйвер FreeTDS для Linux и MSSQL
Драйвер = / usr / local / lib / libtdsodbc.so
Настройка = / usr / local / lib / libtdsodbc.so
UsageCount = 1
[ODBC] Trace = Да
TraceFile = / dev / stdout
freetds.conf
[server_name] host = ip_address
порт = номер_порта
база данных = db_name
REALM = ДОМЕН