Python: подключение к MS SQL с использованием библиотеки SQLAlchemy и аутентификации NTLM
Для подключения к MS SQL с использованием библиотеки SQLAlchemy и аутентификации NTLM, вы можете воспользоваться библиотекой pyodbc
вместе с sqlalchemy
и pyodbc
:
from sqlalchemy import create_engine from sqlalchemy import MetaData, Table # Укажите свои параметры подключения server = 'your_server_name' database = 'your_database_name' username = 'your_username' password = 'your_password' # Создайте строку подключения с использованием NTLM аутентификации connection_string = f'mssql+pyodbc://{username}:{password}@{server}/{database}?driver=ODBC+Driver+17+for+SQL+Server&authentication=NTLM' # Создайте движок SQLAlchemy engine = create_engine(connection_string, echo=True) # Создайте метаданные SQLAlchemy metadata = MetaData() # Пример выполнения SQL-запроса # Замените 'your_table_name' на имя вашей таблицы your_table = Table('your_table_name', metadata, autoload_with=engine) # Ваш SQL-запрос query = your_table.select() # Выполнение запроса result = engine.execute(query) # Вывод результатов for row in result: print(row) # Закрытие соединения engine.dispose()
Обратите внимание, что вы должны заменить 'your_server_name'
, 'your_database_name'
, 'your_username'
, и 'your_password'
на свои реальные данные подключения. Также, убедитесь, что у вас установлены библиотеки pyodbc
, sqlalchemy
и pandas
:
pip install pyodbc sqlalchemy pandas
Аунтентификация без логина и пароля
Если вы хотите использовать NTLM аутентификацию без явного указания логина и пароля, вы можете использовать Windows Integrated Authentication. В этом случае, библиотека pyodbc
будет использовать учетные данные текущего пользователя Windows. Вот обновленный код:
from sqlalchemy import create_engine from sqlalchemy import MetaData, Table # Укажите свои параметры подключения server = 'your_server_name' database = 'your_database_name' # Создайте строку подключения с использованием Windows Integrated Authentication (NTLM) connection_string = f'mssql+pyodbc://{server}/{database}?driver=ODBC+Driver+17+for+SQL+Server&authentication=NTLM' # Создайте движок SQLAlchemy engine = create_engine(connection_string, echo=True) # Создайте метаданные SQLAlchemy metadata = MetaData() # Пример выполнения SQL-запроса # Замените 'your_table_name' на имя вашей таблицы your_table = Table('your_table_name', metadata, autoload_with=engine) # Ваш SQL-запрос query = your_table.select() # Выполнение запроса result = engine.execute(query) # Вывод результатов for row in result: print(row) # Закрытие соединения engine.dispose()
В этом коде логин и пароль не указаны явно в строке подключения. Вместо этого используется Windows Integrated Authentication (NTLM), и библиотека pyodbc
использует учетные данные текущего пользователя Windows для аутентификации. Пожалуйста, замените 'your_server_name'
, 'your_database_name'
, и 'your_table_name'
на свои реальные данные.