Назад | Перейти на главную страницу

Я хочу подключиться к SQL Server Express удаленно через брандмауэр Windows

У меня VPS Windows 2008 с установленным на нем SQL Server Express. Я хочу получить доступ к базе данных SQL Server Express со своего компьютера. Я могу получить к нему доступ, когда отключу брандмауэр Windows, в противном случае я не могу.

Я использовал этот пакет от Microsoft для решения проблемы, но ничего не произошло.

@echo =========  SQL Server Ports  ===================
@echo Enabling SQLServer default instance port 1433
netsh firewall set portopening TCP 1433 "SQLServer" 
@echo Enabling Dedicated Admin Connection port 1434
netsh firewall set portopening TCP 1434 "SQL Admin Connection" 
@echo Enabling conventional SQL Server Service Broker port 4022  
netsh firewall set portopening TCP 4022 "SQL Service Broker" 
@echo Enabling Transact-SQL Debugger/RPC port 135 
netsh firewall set portopening TCP 135 "SQL Debugger/RPC" 
@echo =========  Analysis Services Ports  ==============
@echo Enabling SSAS Default Instance port 2383
netsh firewall set portopening TCP 2383 "Analysis Services" 
@echo Enabling SQL Server Browser Service port 2382
netsh firewall set portopening TCP 2382 "SQL Browser" 
@echo =========  Misc Applications  ==============
@echo Enabling HTTP port 80 
netsh firewall set portopening TCP 80 "HTTP" 
@echo Enabling SSL port 443
netsh firewall set portopening TCP 443 "SSL" 
@echo Enabling port for SQL Server Browser Service's 'Browse' Button
netsh firewall set portopening UDP 1434 "SQL Browser" 
@echo Allowing multicast broadcast response on UDP (Browser Service Enumerations OK)
netsh firewall set multicastbroadcastresponse ENABLE

Спасибо

Похоже, что SQL Server не установлен с использованием портов по умолчанию. Я помню, что SQL Express раньше делал это, потому что он устанавливал именованный экземпляр, а не безымянный экземпляр по умолчанию.

Откройте диспетчер конфигурации SQL Server и проверьте следующие параметры:

  1. Разверните «Сетевая конфигурация SQL Server» на левой панели, затем узел «Протоколы» для вашего экземпляра (возможно, SQLEXPRESS): включен ли TCP / IP?

  2. Щелкните правой кнопкой мыши / Свойства узла TCP / IP, выберите вкладку IP-адреса; найдите раздел IPn, соответствующий сетевому интерфейсу, к которому вы хотите подключиться (или прокрутите до раздела IPAll для любого / всех интерфейсов): есть ли число в поле TCP Dynamic Ports? Вы захотите очистить это поле и, в зависимости от запущенного вами пакетного сценария, установить в поле TCP Port значение «1433» (без кавычек).

  3. Щелкните «Службы SQL Server» на левой панели: убедитесь, что служба «Браузер SQL Server» работает / автоматически. Если нет, измените его на это.

Проверяли ли вы пакетный сценарий перед запуском? Он открыл гораздо больше портов, чем я обычно делал бы для «общедоступного» SQL Server - TCP / 80 и TCP / 433 не нужны, если вы не используете IIS или службы отчетов, TCP / 1434 не нужен, если вы не хотите иметь возможность для доступа к серверу по сети в экстренных случаях, а TCP / 135 - это RPC, к которому, я бы сказал, вы определенно не хотите, чтобы люди имели доступ через Интернет.

Если под VPS вы имеете в виду, что у вас есть сервер с прямым подключением к Интернету, к которому вы получаете доступ из своего удаленного местоположения, вы действительно хотите посмотреть, как получить к нему службу VPN или SSH, чтобы вы могли включить этот доступ, пока оставляя большую часть этого по-прежнему заблокированной из Интернета.

брандмауэр netsh установил открытие TCP 1433 "SQLServer"

не работает - 1433 TCP является экземпляром по умолчанию. Вы должны жестко запрограммировать порт, а затем использовать его ИЛИ открыть брандмауэр (расширенный брандмауэр может это сделать) для исполняемого файла (чтобы он получил все, что ему нужно).