Как подключиться к SQL Server удалённо?

Возникла проблема, пытаюсь подключиться с локального компьютера с помощью Sqlalchemy к SQL Server 2019 на удалённом сервере. Код следующий:

from urllib import parse
from sqlalchemy import create_engine
from sqlalchemy import text
import pandas as pd

from src.databases.core import Session


SERVER = 'SERVERNAME\SQL'
HOST = 'XXXX'
PORT = 1433
DATABASE = 'DBNAME'
UID = 'WINLOGIN'
PWD = 'WINPASS'


params = parse.quote_plus("DRIVER={SQL Server Native Client 11.0};" f"SERVER={SERVER};DATABASE={DATABASE};UID={UID};PWD={PWD}")

engine = create_engine("mssql+pyodbc:///?odbc_connect=%s" % params)

session = Session(engine)

data = session.query(
    text("""
SELECT TOP (1000) [_Period]
      ,[_RecorderTRef]
      ,[_RecorderRRef]
      ,[_LineNo]
      ,[_Active]
FROM [DBNAME].[dbo].[_AccumRg10000]"""))

при использовании обертки pyodbc возникает ошибка

sqlalchemy.exc.InterfaceError: (pyodbc.InterfaceError) ('IM002', '[IM002] [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию (0) (SQLDriverConnect)')

Погуглив, понимания не пришло, но предполагаю, что у меня не настроен Системный DSN на локальном компьютере или на серверном или на обоих.

При попытке подключиться так:

engine = create_engine(
    f"mssql+pyodbc://{UID}:{PWD}@{HOST}:{PORT}/{DATABASE}?driver=ODBC+Driver+18+for+SQL+Server")

Возникает ошибка:

Поставщик TCP: Время ожидания операции истекло.\r\n (258) (SQLDriverConnect); [08001] [Microsoft][ODBC Driver 18 for SQL Server]Время ожидания входа в систему истекло. (0); [08001] [Microsoft][ODBC Driver 18 for SQL Server]При установлении соединения с XXXXXX:XXXX произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и на сервере SQL Server разрешены удаленные соединения.

На удалённом компьютере в сетевых конфигурациях SQL Server протокол TCP/IP включен. В Администраторе источника данных в Системных DSN ничего нет, на локальном также. В связи с этим 2 вопроса, что именно нужно указывать при подключении к БД: ip адрес сервера или название ядра? И как настроить sql server/драйвер для удалённого подключения


Ответы (0 шт):