pyodb c ошибка при подключении к SQL базе данных «Не удается открыть базу данных» database3 «запрошена при входе в систему». - PullRequest
1 голос
/ 17 апреля 2020

У меня есть база данных, к которой я подключаюсь, которая раньше работала, и вернулся к сценарию через несколько месяцев, и теперь она перестала работать, и я получаю сообщение об ошибке ниже:

conn = pyodb c .connect ('DRIVER = {SQL Сервер}; SERVER =' + DB ['имя_сервера'] + '; DATABASE =' + DB ['database'] + '; Trusted_Connection = yes' + '; UID = '+ DB [' user '] +'; PWD = '+ DB [' password '])

Ошибка программирования: (' 42000 ',' [42000] [Microsoft] [ODB C SQL Драйвер сервера] [SQL Сервер] Невозможно открыть базу данных «database3», запрошенную при входе в систему. Ошибка входа в систему. (4060) (SQLDriverConnect); [42000] [Microsoft] [ODB C SQL Драйвер сервера] [SQL Сервер] Невозможно открыть базу данных «database3», запрошенную при входе в систему. Ошибка при входе. (4060) ')

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

Python: 3.6.7 
Pandas: 1.0.3
pyODBC: 4.0.27 also tried upgrading this to 4.0.30.

Код, который я использую для подключения:

# parameters for connecting to SQL databse 
DB = {'servername': 'server\sqlexpress',
      'database': 'database3',
     'user':'sa',
     'password' : 'Password'}

# create the connection
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=' + DB['servername'] + ';DATABASE=' + DB['database'] + ';Trusted_Connection=yes' + ';UID=' + DB['user'] + ';PWD=' + DB['password'])

Может ли кто-нибудь помочь мне решить эту проблему?

1 Ответ

1 голос
/ 17 апреля 2020

Вы должны предоставить UID=...;PWD=... ИЛИ Trusted_Connection=yes, а не оба. Если вы хотите использовать SQL Аутентификацию (в отличие от Windows Аутентификация), тогда используйте Trusted_Connection=no (или просто полностью ее опустите).

...