У меня 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 и проверьте следующие параметры:
Разверните «Сетевая конфигурация SQL Server» на левой панели, затем узел «Протоколы» для вашего экземпляра (возможно, SQLEXPRESS): включен ли TCP / IP?
Щелкните правой кнопкой мыши / Свойства узла TCP / IP, выберите вкладку IP-адреса; найдите раздел IPn, соответствующий сетевому интерфейсу, к которому вы хотите подключиться (или прокрутите до раздела IPAll для любого / всех интерфейсов): есть ли число в поле TCP Dynamic Ports? Вы захотите очистить это поле и, в зависимости от запущенного вами пакетного сценария, установить в поле TCP Port значение «1433» (без кавычек).
Щелкните «Службы 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 является экземпляром по умолчанию. Вы должны жестко запрограммировать порт, а затем использовать его ИЛИ открыть брандмауэр (расширенный брандмауэр может это сделать) для исполняемого файла (чтобы он получил все, что ему нужно).