Я пытаюсь разрешить только определенным компьютерам в моем домене подключаться к экземпляру SQL Server, но, похоже, я случайно блокирую подключение всех компьютеров.
Когда я ухожу in, чтобы настроить брандмауэр на сервере, на котором размещена база данных, после настройки компьютеров, на которых я хочу иметь доступ к экземпляру. Он блокирует их всех. После установки правила обратно в исходное состояние оно работает.
Установка этого правила приводит к подключению к время ожидания сервера истекает примерно через 60 секунд, а затем возвращается стандартное сообщение «сервер не существует или доступ запрещен».
Какие правильные настройки мне нужно использовать?
Вы можете сделать это с помощью встроенного Windows Server 2012 в брандмауэре и с помощью простых и применимых команд брандмауэра Netsh AdvFirewall из командной строки (или пакетного сценария) запускаются от имени администратора .
По сути, вы должны разрешить входящие соединения следующим образом:
По номеру порта TCP экземпляр SQL Server прослушивает сервер
[localport = {любой | Целое | rpc | rpc-epmap | тередо | [, ...]}]
Указывает, что совпадают сетевые пакеты с совпадающими номерами IP-портов по этому правилу. localport сравнивается с полем Source Port в исходящий сетевой пакет. Он сравнивается с полем Destination Port. входящего сетевого пакета.
- Целое число . Задает точный номер порта , который должен присутствовать для пакета, соответствующего правилу. Значения портов могут быть отдельными числами от 0 до 65535 , диапазоном, например 5000-5020 , , или списком чисел и диапазонов, разделенных запятыми.
Для localport можно указать несколько записей, разделив их запятой. Не включайте пробелы.
Если localport не указан, по умолчанию будет любым .
Разрешив соединения только через этот TCP-порт из определенного ( или набор) IP-адресов
[localip = {Адреса}]
Указывает, что сетевые пакеты с совпадающие IP-адреса соответствуют этому правилу. localip сравнивается с полем IP-адреса назначения входящего сетевого пакета. Он сравнивается с полем IP-адреса источника исходящего сетевого пакета.
- IPAddress. Соответствует только точному адресу IPv4 или IPv6 .
Для localip можно указать несколько записей , разделив их запятой. Не включайте пробелы.
Если localip не указан, значение по умолчанию - любое .
Командная строка
netsh advfirewall firewall add rule name="Inbound 1433 Access Per IP Address" dir=in protocol=tcp action=allow localip=192.168.1.10,192.168.1.20,192.168.1.30
Пакетный сценарий Разрешить
ECHO ON
SET name="Inbound 1433 Access Per IP Address"
SET dir=in
SET protocol=tcp
SET action=allow
SET localport=1433
SET localip=192.168.1.1,192.168.1.2,192.168.1.1
netsh advfirewall firewall add rule name=%name% dir=%dir% protocol=%protocol% action=%action% localip=%localip%
Удаление правила
netsh advfirewall firewall delete rule name="Inbound 1433 Access Per IP Address"