Правила брандмауэра для базы данных SQL Azure и IP-адреса Azure синапсе

ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных SQL Azure Azure Synapse Analytics

Например, при создании нового сервера в базе данных SQL Azure или Azure синапсе Analytics с именем MySQLServer, к примеру, брандмауэр уровня сервера блокирует доступ к общедоступной конечной точке сервера (который доступен по адресу MySQLServer.Database.Windows.NET). Для простоты база данных SQL используется для ссылки на базу данных SQL и Azure синапсе Analytics.

Важно!

Эта статья не относится к управляемому экземпляру базы данных SQL Azure. Сведения о конфигурации сети см. в статье подключение приложения к Azure SQL управляемый экземпляр.

Azure синапсе поддерживает только правила брандмауэра для IP-адресов уровня сервера. Правила брандмауэра для IP-адресов уровня базы данных не поддерживаются.

Как работает брандмауэр

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

Схема конфигурации брандмауэра

Правила брандмауэра для IP-адресов на уровне сервера

Эти правила позволяют клиентам обращаться ко всему серверу, то есть ко всем базам данных, которыми он управляет. Правила хранятся в базе данных master . Для сервера можно задать не более 128 правил брандмауэра для IP-адресов на уровне сервера. Если у вас есть разрешение на доступ к этому параметру сервера для служб и ресурсов Azure , это считается одним правилом брандмауэра для сервера.

Правила брандмауэра IP на уровне сервера можно настроить с помощью инструкций портал Azure, PowerShell или Transact-SQL.

  • Чтобы использовать портал или PowerShell, необходимо быть владельцем подписки или участником подписки.
  • Чтобы использовать Transact-SQL, необходимо подключиться к базе данных master в качестве имени входа субъекта уровня сервера или администратора Azure Active Directory. (Правило брандмауэра IP уровня сервера должно быть создано пользователем, имеющим разрешения уровня Azure.)

Примечание

По умолчанию во время создания нового логического сервера SQL Server из портал Azure для параметра Разрешить службам Azure и ресурсам доступ к этому серверу установлено значение нет.

Правила брандмауэра для IP-адресов на уровне базы данных

Правила брандмауэра для IP-адресов уровня базы данных позволяют клиентам получать доступ к определенным (защищенным) базам данных. Правила создаются для каждой базы данных (включая базу данных master ) и хранятся в отдельной базе данных.

  • Создавать и администрировать правила брандмауэра IP уровня базы данных для баз данных master и User можно только с помощью инструкций Transact-SQL и только после настройки первого брандмауэра на уровне сервера.
  • Если указать диапазон IP-адресов в правиле брандмауэра IP уровня базы данных, который находится за пределами диапазона в правиле брандмауэра IP на уровне сервера, то только те клиенты, у которых есть IP-адреса в диапазоне уровня базы данных, могут получить доступ к базе данных.
  • Для базы данных можно задать не более 128 правил брандмауэра для IP-адресов на уровне базы данных. Дополнительные сведения о настройке правил брандмауэра для IP-адресов на уровне базы данных см. в примере ниже в этой статье и см. в разделе sp_set_database_firewall_rule (база данных SQL Azure).

Рекомендации по настройке правил брандмауэра

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

Примечание

Сведения о портативных базах данных в контексте непрерывности бизнес-процессов см. в разделе Требования к проверке подлинности для аварийного восстановления.

Правила брандмауэра для IP-адресов уровня сервера и уровня базы данных

Необходимо ли полностью изолировать пользователей одной базы данных от пользователей другой базы данных ?

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

Требуются ли пользователям с IP-адресами доступ ко всем базам данных?

Если Да, используйте правила брандмауэра IP на уровне сервера, чтобы сократить число попыток настройки правил брандмауэра IP.

Имеет ли пользователь или группа, которые настраивают правила брандмауэра IP, доступ только через портал Azure, PowerShell или REST API?

В этом случае необходимо использовать правила брандмауэра для IP-адресов на уровне сервера. Правила брандмауэра IP-адресов уровня базы данных можно настроить только с помощью Transact-SQL.

Пользователь или группа, которые настраивают правила брандмауэра IP-адресов, не имеют разрешения высокого уровня на уровне базы данных?

Если это так, используйте правила брандмауэра IP на уровне сервера. Для настройки правил брандмауэра для IP-адресов уровня базы данных с помощью Transact-SQL требуется по крайней мере разрешение Control Database на уровне базы данных.

Пользователь или группа, которые настраивают или подлежат аудиту правил брандмауэра IP-адресов, централизованно управляют правилами брандмауэра IP-адресов для многих (возможно, сотен) баз данных?

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

Можно ли использовать правила брандмауэра IP уровня сервера и уровня базы данных?

Да. Некоторым пользователям, например администраторам, могут потребоваться правила брандмауэра для IP-адресов на уровне сервера. А другим пользователям, например пользователям приложения базы данных, необходимы правила брандмауэра для IP-адресов на уровне базы данных.

Подключения через Интернет

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

  • Если адрес находится в диапазоне, указанном в правилах брандмауэра IP-адресов уровня базы данных, то соединение предоставляется базе данных, содержащей правило.
  • Если адрес не входит в диапазон правил брандмауэра для IP-адресов уровня базы данных, брандмауэр проверяет правила брандмауэра IP-адресов на уровне сервера. Если адрес находится в диапазоне, который находится в правилах брандмауэра IP на уровне сервера, соединение предоставляется. Правила брандмауэра IP-адресов уровня сервера применяются ко всем базам данных, которыми управляет сервер.
  • Если адрес находится не в диапазоне, который находится в каком-либо из правил брандмауэра на уровне базы данных или на уровне сервера, запрос на подключение завершается ошибкой.

Примечание

Чтобы получить доступ к базе данных SQL Azure с локального компьютера, убедитесь, что брандмауэр в сети и локальный компьютер разрешают исходящие подключения через TCP-порт 1433.

Подключения из Azure

Чтобы разрешить приложениям, размещенным в Azure, подключаться к серверу SQL Server, необходимо включить подключения Azure. Чтобы включить подключения Azure, необходимо установить правило брандмауэра с начальным и конечным IP-адресами 0.0.0.0.

Когда приложение из Azure пытается подключиться к серверу, брандмауэр проверяет, разрешены ли подключения Azure, проверяя, существует ли это правило брандмауэра. Это можно включить непосредственно из колонки портал Azure, переключив параметр Разрешить службам и ресурсам Azure доступ к серверу в в настройках брандмауэры и виртуальные сети . Параметр Вкл. создает правило брандмауэра для входящего трафика для IP-адреса 0.0.0.0-0.0.0.0 с именем алловаллвиндовсип. Используйте PowerShell или Azure CLI, чтобы создать правило брандмауэра с начальным и конечным IP-адресами со значением 0.0.0.0, если портал не используется.

Важно!

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

Разрешения

Чтобы иметь возможность создавать правила брандмауэра для IP-адресов для SQL Server Azure и управлять ими, необходимо:

Создание и администрирование правил брандмауэра для IP-адресов

Первый параметр брандмауэра на уровне сервера создается с помощью портал Azure или программным путем с помощью Azure PowerShell, Azure CLIили REST APIAzure. Вы создаете дополнительные правила брандмауэра IP на уровне сервера и управляете ими с помощью этих методов или Transact-SQL.

Важно!

Правила брандмауэра IP уровня базы данных могут создаваться и управляться только с помощью Transact-SQL.

Для повышения производительности правила брандмауэра для IP-адресов на уровне сервера временно кэшируются на уровне базы данных. Сведения об обновлении кэша см. в статье DBCC FLUSHAUTHCACHE (Transact-SQL).

Совет

Аудит базы данных можно использовать для аудита изменений брандмауэра на уровне сервера и базы данных.

Использование портал Azure для управления правилами брандмауэра IP на уровне сервера

Чтобы задать правило брандмауэра IP на уровне сервера в портал Azure, перейдите на страницу Обзор для своей базы данных или сервера.

Совет

Руководство см. в разделе Создание базы данных с помощью портал Azure.

На странице "Обзор базы данных"

  1. Чтобы задать правило брандмауэра IP на уровне сервера на странице Обзор базы данных, на панели инструментов выберите задать брандмауэр сервера , как показано на следующем рисунке.

    Правило брандмауэра IP-адреса сервера

    Откроется страница Параметры брандмауэра сервера.

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

    Задать правило брандмауэра IP на уровне сервера

На странице обзора сервера

Откроется страница обзора сервера. Он отображает полное имя сервера (например, mynewserver20170403.Database.Windows.NET) и предоставляет параметры для дальнейшей настройки.

  1. Чтобы задать правило уровня сервера на этой странице, выберите брандмауэр в меню Параметры в левой части экрана .

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

Использование Transact-SQL для управления правилами брандмауэра IP-адресов

Представление каталога или хранимая процедура Level Описание
sys.firewall_rules Сервер Отображает текущие правила брандмауэра для IP-адресов на уровне сервера
sp_set_firewall_rule Сервер Создает или обновляет правила брандмауэра для IP-адресов на уровне сервера
sp_delete_firewall_rule Сервер Удаляет правила брандмауэра для IP-адресов на уровне сервера
sys.database_firewall_rules База данных Отображает текущие правила брандмауэра для IP-адресов на уровне базы данных
sp_set_database_firewall_rule База данных Создает или обновляет правила брандмауэра для IP-адресов на уровне базы данных
sp_delete_database_firewall_rule Базы данных Удаляет правила брандмауэра для IP-адресов на уровне базы данных

В следующем примере просматриваются существующие правила, включается диапазон IP-адресов на сервере contoso и удаляется правило брандмауэра IP-адреса.

SELECT * FROM sys.firewall_rules ORDER BY name;

Затем добавьте правило брандмауэра для IP-адресов на уровне сервера.

EXECUTE sp_set_firewall_rule @name = N'ContosoFirewallRule',
   @start_ip_address = '192.168.1.1', @end_ip_address = '192.168.1.10'

Чтобы удалить правило брандмауэра IP на уровне сервера, выполните хранимую процедуру sp_delete_firewall_rule . В следующем примере удаляется правило ContosoFirewallRule:

EXECUTE sp_delete_firewall_rule @name = N'ContosoFirewallRule'

Использование PowerShell для управления правилами брандмауэра IP на уровне сервера

Примечание

Эта статья была изменена, и теперь в ней содержатся сведения о модуле Az PowerShell для Azure. Модуль Az PowerShell является рекомендуемым модулем PowerShell для взаимодействия с Azure. Чтобы начать работу с модулем Az PowerShell, ознакомьтесь со статьей Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Важно!

Модуль PowerShell Azure Resource Manager по-прежнему поддерживается базой данных SQL Azure, но теперь для модуля AZ. SQL используется вся разработка. Сведения об этих командлетах см. в разделе AzureRM.Sql. Аргументы для команд в модулях AZ и AzureRm существенно идентичны.

Командлет Level Описание
Get-Азсклсерверфиреваллруле Сервер Возвращает текущие правила брандмауэра уровня сервера
New-AzSqlServerFirewallRule Сервер Создает новое правило брандмауэра уровня сервера
Set-Азсклсерверфиреваллруле Сервер Обновляет свойства существующего правила брандмауэра уровня сервера
Remove-Азсклсерверфиреваллруле Сервер Удаляет правила брандмауэра уровня сервера

В следующем примере с помощью PowerShell задается правило брандмауэра IP на уровне сервера:

New-AzSqlServerFirewallRule -ResourceGroupName "myResourceGroup" `
    -ServerName $servername `
    -FirewallRuleName "ContosoIPRange" -StartIpAddress "192.168.1.0" -EndIpAddress "192.168.1.255"

Совет

Для $servername укажите имя сервера, а не полное DNS-имя, например, укажите мисклдбсервер вместо mysqldbserver.Database.Windows.NET .

Примеры для PowerShell в контексте краткого руководства см. в статьях создание базы данных PowerShell и Настройка правила брандмауэра IP на уровне сервера с помощью PowerShell.

Использование интерфейса командной строки для управления правилами брандмауэра IP на уровне сервера

Командлет Level Описание
az sql server firewall-rule create Сервер Создает правило брандмауэра для IP-адресов на уровне сервера
az sql server firewall-rule list Сервер Выводит список правил брандмауэра для IP-адресов на сервере
az sql server firewall-rule show Сервер Отображение сведений о правиле брандмауэра IP-адресов
az sql server firewall-rule update Сервер Обновляет правило брандмауэра IP-адресов.
az sql server firewall-rule delete Сервер Удаление правила брандмауэра IP-адресов

В следующем примере с помощью интерфейса командной строки задается правило брандмауэра IP на уровне сервера:

az sql server firewall-rule create --resource-group myResourceGroup --server $servername \
-n ContosoIPRange --start-ip-address 192.168.1.0 --end-ip-address 192.168.1.255

Совет

Для $servername укажите имя сервера, а не полное DNS-имя, например, укажите мисклдбсервер вместо mysqldbserver.Database.Windows.NET .

Пример для интерфейса командной строки в контексте краткого руководства см. в разделе CREATE DB-Azure CLI и Создание отдельной базы данных и настройка правила брандмауэра IP на уровне сервера с помощью Azure CLI.

Использование REST API для управления правилами брандмауэра IP на уровне сервера

API Level Описание
Вывод списка правил брандмауэра Сервер Отображает текущие правила брандмауэра для IP-адресов на уровне сервера
Создание или обновление правил брандмауэра Сервер Создает или обновляет правила брандмауэра для IP-адресов на уровне сервера
Удаление правил брандмауэра Сервер Удаляет правила брандмауэра для IP-адресов на уровне сервера
Получение правил брандмауэра Сервер Возвращает правила брандмауэра для IP-адресов на уровне сервера

Устранение неполадок брандмауэра базы данных

Если доступ к базе данных SQL Azure не работает должным образом, учитывайте следующие моменты.

  • Конфигурация локального брандмауэра

    Прежде чем компьютер сможет получить доступ к Базе данных SQL Azure, может потребоваться создать на компьютере исключение брандмауэра для TCP-порта 1433. Чтобы установить подключения внутри границы облака Azure, может потребоваться открыть дополнительные порты. Дополнительные сведения см. в разделе "база данных SQL: за пределами Vs Inside" портов за пределами 1433 для ADO.NET 4,5 и базы данных SQL Azure.

  • Преобразование сетевых адресов:

    В связи с преобразованием сетевых адресов (NAT) IP-адрес, используемый вашим компьютером для подключения к базе данных SQL Azure, может отличаться от IP-адреса в параметрах IP-конфигурации вашего компьютера. Чтобы просмотреть IP-адрес, который используется компьютером для подключения к Azure, сделайте следующее:

    1. Войдите на портал.
    2. Перейдите на вкладку Настройка на сервере, на котором размещена ваша база данных.
    3. IP-адрес текущего клиента отображается в разделе Разрешенные IP-адреса . Выберите Добавить для разрешенных IP-адресов , чтобы разрешить этому компьютеру доступ к серверу.
  • Изменения в списке разрешений еще не вступили в действие:

    Для вступления в силу изменений конфигурации брандмауэра базы данных SQL Azure может потребоваться около пяти минут.

  • Имя входа не имеет полномочий или был использован неверный пароль:

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

  • Динамический IP-адрес:

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

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

Дальнейшие действия