Как подключиться к удаленному SQL-серверу с помощью скрипта python в debian

#python #sql-server #debian #remote-access #pymssql

Вопрос:

У меня есть компьютер с Windows, на котором установлен SQL-сервер. У меня также есть другой компьютер, на котором установлена виртуальная машина с Debian. В этой виртуальной машине есть скрипт Python, который должен подключиться к SQL-серверу. То есть мне нужно удаленно подключиться к SQL-серверу на другом компьютере.

На моем SQL-сервере я создал пользователя remote_user с паролем и необходимыми правами. введите описание изображения здесь

Я также включил удаленные подключения

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

включил протокол TCP/IP в диспетчере конфигурации SQL Server

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

проверил порт на наличие TCP/IP

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

запустил браузер и агент SQL Server

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

и добавил порт 1433 в разрешенные правила брандмауэра Windows

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

Затем я пытаюсь подключиться к серверу в своем скрипте python, используя следующий код:

 import pymssql conn = pymssql.connect('ip_address', 'remote_user', 'password', 'db_name')  

но появляется ошибка:

 Traceback (most recent call last):   File "src/pymssql/_pymssql.pyx", line 646, in pymssql._pymssql.connect   File "src/pymssql/_mssql.pyx", line 2126, in pymssql._mssql.connect   File "src/pymssql/_mssql.pyx", line 716, in pymssql._mssql.MSSQLConnection.__init__   File "src/pymssql/_mssql.pyx", line 1835, in pymssql._mssql.maybe_raise_MSSQLDatabaseException   File "src/pymssql/_mssql.pyx", line 1852, in pymssql._mssql.raise_MSSQLDatabaseException  pymssql._mssql.MSSQLDatabaseException: (20009, b'DB-Lib error message 20009, severity 9:nUnable to connect: Adaptive Server is unavailable or does not exist (ip_address)nNet-Lib error during Connection timed out (110)nDB-Lib error message 20009, severity 9:nUnable to connect: Adaptive Server is unavailable or does not exist (ip_address)nNet-Lib error during Connection timed out (110)n')    During handling of the above exception, another exception occurred:    Traceback (most recent call last):   File "lt;stdingt;", line 1, in lt;modulegt;   File "src/pymssql/_pymssql.pyx", line 652, in pymssql._pymssql.connect  pymssql._pymssql.OperationalError: (20009, b'DB-Lib error message 20009, severity 9:nUnable to connect: Adaptive Server is unavailable or does not exist (ip_address)nNet-Lib error during Connection timed out (110)nDB-Lib error message 20009, severity 9:nUnable to connect: Adaptive Server is unavailable or does not exist (ip_address)nNet-Lib error during Connection timed out (110)n')  

Я что-то пропустил? Что может вызвать такую проблему?

Буду признателен за любую помощь!

Комментарии:

1. К вашему сведению, делиться своим публичным IP-адресом крайне глупо, особенно когда рядом со снимком LOGIN экрана указано имя…

2. Скорее всего, ваш «общедоступный IP-адрес» — это общедоступный IP-адрес вашего маршрутизатора, а не IP-адрес компьютера, на котором запущен SQL Server.

3. Если хост находится в той же сети/домене, что и ваш хост SQL Server? Если это так, то ваш общедоступный IP-адрес-это не то, что вам нужно; это IP-адрес хоста SQL Server. если они не находятся в одном домене, и вы подключаетесь по глобальной сети, вам необходимо убедиться, что у вас включена переадресация портов, и вы ограничиваете этот порт доступом только к общедоступному IP-адресу этого внешнего хоста (в противном случае будьте готовы к тому, что ваш хост SQL Server подвергнется грубой принудительной атаке).

4. @Larnu Спасибо тебе! Это всего лишь тестовая база данных, в которой ничего нет, но я удалил IP-адрес

5. Прямо сейчас они находятся в одной сети, но мне нужно, чтобы она также работала в двух отдельных сетях. Какой IP-адрес мне следует использовать в таком случае?