Невозможно подключиться к базе данных MSSQL Server с помощью Python

Я подключаюсь к базе данных MSSQL SERVER 2008 с помощью графического интерфейса Microsoft SQL Server Management Studio, как показано на этом снимке экрана

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

import _mssql
conn = _mssql.connect(server="POLIVEIRA-PC\\MSSQLSERVER2008", user="POliveira-PC\\POliveira", password="my_password", database="database_name")

с флажками пользователя и пароля и без них. Я всегда получаю такую ​​ошибку:

Отслеживание (последний вызов последним): файл «», строка 1, в файле «_mssql.pyx», строка 1887, в _mssql.connect (_mssql.c: 20477), файл «_mssql.pyx», строка 632, в _mssql. MSSQLConnection. init (_mssql.c: 6169) _mssql.MSSQLDriverException: соединение с базой данных не удалось по неизвестной причине.

Можете ли вы помочь мне подключиться к этой базе данных с помощью Python (либо с использованием модуля pymssql, либо без него). У меня нет опыта ни с Python, ни с SQL, поэтому я хотел бы сделать это как можно проще.

Я использую 64-разрядную версию Windows 7. Pyhton v2.7.9


person POliveira    schedule 25.01.2015    source источник
comment
На скриншоте вы используете аутентификацию Windows, в то время как ваш код использует аутентификацию SQLserver ... Ваш сервер настроен для этого?   -  person thebjorn    schedule 25.01.2015
comment
@thebjorn Я не знаю, настроен ли сервер для этого, но я бы хотел, чтобы мой код подключался с использованием проверки подлинности Windows. Позвольте мне просто дать вам контекст: я пишу свою магистерскую диссертацию, и мне дали кучу файлов базы данных для извлечения данных. Я единственный, кто имеет доступ к базе данных, которая хранится на моем компьютере.   -  person POliveira    schedule 25.01.2015
comment
Я не думаю, что pymssql позволяет вам больше подключаться с использованием проверки подлинности Windows (похоже, что он был удален в 2010 году). Если вы действительно хотите использовать проверку подлинности Windows, это может сделать библиотека adodb.   -  person thebjorn    schedule 25.01.2015


Ответы (2)


Я рекомендую вам использовать pyodbc, если вы используете anaconda, используйте версию pyodbc 3.0.10, например:

import pyodbc 
from urllib.parse import quote_plus    
params = quote_plus("DRIVER={SQL Server};SERVER=POLIVEIRA-PC\\MSSQLSERVER2008;DATABASE=dbname;UID=userid;PWD=password")
    try: cnxn = create_engine("mssql+pyodbc:///?odbc_connect=%s" % params)
    except Exception as e:
        raise SystemExit('Error: Conexion Base de Datos SQL %s' % e)

И если проблема в удаленном подключении, в этих ссылках говорят об этом

https://blogs.msdn.microsoft.com/walzenbach/2010/04/14/how-to-enable-remote-connections-in-sql-server-2008/

http://akawn.com/blog/2012/01/configuring-sql-server-2008-r2-express-edition-for-remote-access/

Надеюсь, это сработает

person Camilo Velasquez    schedule 09.06.2017

Вам необходимо создать логин с аутентификацией SQL Server, а затем подключиться к этому пользователю:

введите описание изображения здесь

(вам нужно будет подключить этот логин к пользователю и т. д., но это не связано с входом в систему), затем используйте

import pymssql
pymssql.connect(host=r"POLIVEIRA-PC\MSSQLSERVER2008", user='logintest', password='secret', database='database_name')

не используйте модуль _mssql напрямую.

person thebjorn    schedule 25.01.2015