Pyodbc принимает только аутентификацию Windows
У меня есть один скрипт python, который подключается к серверу MS SQL из Windows через pyodbc. При попытке аутентификации Windows он подключается к базе данных, но при попытке аутентификации сервера SQL (с именем пользователя и паролем) он показывает ошибку ниже.
"('28000',"[28000] [Microsoft][Драйвер ODBC SQL Server][SQL Server] Ошибка входа для пользователя 'xxxx'. (18456) (SQLDriverConnect); [28000] [Microsoft][Драйвер ODBC SQL Server]][SQL Server] Ошибка входа для пользователя 'xxxx'. (18456)")".
Но я могу подключиться к SQL-серверу, используя это имя пользователя и пароль (учетные данные SQL-сервера). Я включил чтение БД, разрешение записи для этого пользователя на вкладке сопоставления пользователей, и проверка подлинности SQL-сервера также находится во включенном состоянии. Это становится узким местом. Решения приветствуются. Заранее спасибо!!!.
1 ответ
Сегодня я узнал, что в Python больше всего важны верхний и нижний регистр. Моя предыдущая строка подключения:
conn=pyodbc.connect(r'DRIVER=SQL Server;SERVER=10.60.144.13;UID=BOT_Autoheal;PWD=bot_Aut0h3a1;DATABASE=OO_GlobalAutoHealing;TRUSTED_CONNECTION=NO';)
Но фактическая строка подключения сработала для меня,
conn = pyodbc.connect(r'DRIVER = SQL Server;SERVER = 10.60.144.13;UID = BOT_Autoheal;PWD = bot_Aut0h3a1;DATABASE = OO_GlobalAutoHealing;Trusted_Connection=no')
Поэтому всегда используйте Trusted_Connection=no как есть, не пытайтесь изменить его на верхний регистр.