narga: (Default)
[personal profile] narga
Очередной мануал в локальную вику и сюда. Кстати, обращаем внимание на тег RTFM:)

На этот раз - как пропилить дырки в брандмауэре windows для доступа к sql-серверу. Пилим локально непосредственно на сервере SQL.

Создаём батник со следующим текстом:

@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

Сохраняем. Обзываем как OpenSqlServerPort. Запускаем с правами администратора. В процессе, кстати, нам предложат использовать синтаксис netsh advfirewall firewall, что кагбэ всем своим видом намекает на то, что я некошерный человек и вообще редиска.

Для тех, кто не понял, поясняю на примере:

netsh firewall set portopening protocol = TCP port = 1433 name = SQLPort mode = ENABLE scope = SUBNET profile = CURRENT

Про порт 1433 проще процитировать мелкомягких: "Этот порт открывают в брандмауэре чаще всего. Он применяется для программных соединений с экземпляром компонента Database Engine по умолчанию или именованным экземпляром, который является единственным на данном компьютере."

В случае, если вы извращенец, sql ставили не по дефолту, а создали именованный экземляр (instance), необходимо создать дополнительное правило в брандмауэре.
Сделать это можно стандартным способом: Брандмауэр - создать правило - правило для программмы - и далее по адресу %Диск, на который вы всё это засунули%\DATA\MSSQL10.SQL_ADMIN\MSSQL\Binn\sqlservr.exe

Разрешить - всё.

Профит:)

То же самое, подробнее и с описанием по портам тут и тут (англ.).

Have fun:)

Date: 2012-02-08 05:34 pm (UTC)
From: [identity profile] mrrr.livejournal.com
На Циске это как-то изящнее, что ли :)

Date: 2012-02-16 02:50 pm (UTC)
From: [identity profile] pan-2.livejournal.com
В целом забавно, но для production всё таки желательно не только порты открывать, но и указывать конкретный экзешник, которому можно этот порт слушать.

Не поянл про именнованный экземпляр, по умолчанию он висит точно также на 1433 (sqldata), это на практике пришлось так делать или это в доке так?

Profile

narga: (Default)
narga

January 2025

S M T W T F S
   1234
567891011
12131415161718
19202122232425
2627282930 31 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 10th, 2026 11:20 pm
Powered by Dreamwidth Studios