Pandas sqlalchemy create_engine соединение с SQL сервером windows аутентификацией - PullRequest
1 голос
/ 16 июня 2020

Я пытаюсь загрузить Pandas DataFrame в SQL серверную таблицу. Насколько я знаю, метод sqlalchemy to_ sql кажется отличным вариантом. Однако я не могу заставить create_engine установить соединение.

Я могу подключиться к базе данных для получения данных с аутентификацией Windows. Вот строка подключения, которую я использую:

cnxn = pyodbc.connect("Driver={SQL Server Native Client 11.0};"
                      "Server={server_name};"
                      "Database={database_name};"
                      "Trusted_Connection=yes;")

Я пробовал несколько разных способов использовать свою регистрационную информацию для подключения, вот самая последняя версия:

engine = create_engine(
        "mssql+pyodbc://{network_user_name}:{network_pw}@{server_name}//{database_name}"
    )

engine.connect()

Вот я получаю ошибку:

InterfaceError: (pyodbc.InterfaceError) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
(Background on this error at: http://sqlalche.me/e/rvf5)

1 Ответ

2 голосов
/ 16 июня 2020

Если вы собираетесь использовать аутентификацию Windows, вы просто опускаете часть имени пользователя / пароля в URI подключения. У меня это отлично работает:

connection_uri = (
    "mssql+pyodbc://@192.168.0.179:49242/mydb?driver=ODBC+Driver+17+for+SQL+Server"
)
engine = sa.create_engine(connection_uri)
...