sp_set_firewall_rule (база данных SQL Azure)

Применимо к:База данных SQL Azure Azure Synapse Analytics

Создает или обновляет параметры брандмауэра уровня сервера для сервера Базы данных SQL. Эта хранимая процедура доступна только в master базе данных для имени входа участника на уровне сервера или назначенного субъекту Microsoft Entra ID (ранее — Azure Active Directory).

Синтаксис

sp_set_firewall_rule
    [ @name = ] N'name'
    , [ @start_ip_address = ] 'start_ip_address'
    , [ @end_ip_address = ] 'end_ip_address'
[ ; ]

Аргументы

[ @name = ] N'name'

Имя, используемое для описания и определения параметров брандмауэра на уровне сервера. @name nvarchar(128).

[ @start_ip_address = ] 'start_ip_address'

Наименьший IP-адрес в диапазоне параметра брандмауэра на уровне сервера. @start_ip_address — varchar(50). IP-адреса, которые больше этого адреса или равны ему, могут попытаться подключиться к серверу Базы данных SQL. Наименьший возможный IP-адрес: 0.0.0.0.

[ @end_ip_address = ] 'end_ip_address'

Наибольший IP-адрес в диапазоне параметра брандмауэра на уровне сервера. @end_ip_address — varchar(50). IP-адреса, которые меньше этого адреса или равны ему, могут попытаться подключиться к серверу Базы данных SQL. Наибольший возможный IP-адрес: 255.255.255.255.

Попытки подключения Azure разрешены, если это поле и поле @start_ip_address равны 0.0.0.0.

Комментарии

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

Добавление параметра брандмауэра уровня сервера, для которого начальный и конечный IP-адреса равны 0.0.0.0, позволяет разрешить доступ к серверу Базы данных SQL из Azure. Укажите значение параметра имени , который помогает помнить, что такое параметр брандмауэра на уровне сервера.

В База данных SQL данные для входа, необходимые для проверки подлинности подключений и правил брандмауэра на уровне сервера, временно кэшируются в каждой базе данных. Этот кэш периодически обновляется. Чтобы принудительно обновить кэш проверки подлинности и убедиться в том, что база данных имеет последнюю версию таблицы имен входа, выполните инструкцию DBCC FLUSHAUTHCACHE (Transact-SQL).

Это расширенная хранимая процедура, поэтому тип данных значения, передаваемого для каждого параметра, должен соответствовать определению параметра.

Разрешения

Только имя входа субъекта уровня сервера, созданное процессом подготовки или субъектом идентификатора Microsoft Entra ID, назначенным администратором, может создавать или изменять правила брандмауэра уровня сервера. Для выполнения sp_set_firewall_ruleпользователь должен быть подключен к master базе данных.

Примеры

Приведенный ниже код создает параметр брандмауэра уровня сервера с именем Allow Azure, разрешающий доступ из Azure. Выполните следующий сценарий в виртуальной master базе данных.

-- Enable Azure connections.
EXEC sp_set_firewall_rule N'Allow Azure', '0.0.0.0', '0.0.0.0';

Следующий код создает параметр брандмауэра уровня сервера Example setting 1 только для IP-адреса 0.0.0.2. Затем хранимая процедура sp_set_firewall_rule вызывается вновь, чтобы обновить конечный IP-адрес 0.0.0.4 в этом параметре брандмауэра. При этом создается диапазон, который позволяет IP-адресам 0.0.0.2, 0.0.0.3и 0.0.0.4 получать доступ к серверу.

-- Create server-level firewall setting for only IP 0.0.0.2
EXEC sp_set_firewall_rule N'Example setting 1', '0.0.0.2', '0.0.0.2';

-- Update server-level firewall setting to create a range of allowed IP addresses
EXEC sp_set_firewall_rule N'Example setting 1', '0.0.0.2', '0.0.0.4';