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' на свои реальные данные.