Назад | Перейти на главную страницу

Как настроить правила брандмауэра для размещенных кросс-запросов к базе данных SQL Azure с использованием внешних таблиц

У меня есть размещенный экземпляр Azure SQL Server с эластичным пулом, который содержит несколько баз данных. Я хочу выполнить перекрестный запрос базы данных между двумя из этих баз данных. Я понимаю, что единственный способ сделать это - использовать внешние таблицы (а не связанные серверы). Я хочу знать, какие правила брандмауэра следует установить в колонке брандмауэра SQL Server портала Azure.

Когда внешняя таблица настроена, и я пытаюсь сделать запрос, я получаю следующее сообщение:

    Error retrieving data from {server}.{remotedb}.  The underlying error message received was: 'Cannot open server '{server}' requested by the login. Client with IP address '{origindb}' is not allowed to access the server.  To enable access, use the Windows Azure Management Portal or run sp_set_firewall_rule on the master database to create a firewall rule for this IP address or address range.  It may take up to five minutes for this change to take effect.'.

Я могу изменить правила брандмауэра на портале Azure для экземпляра SQL Server. Мои варианты в лезвии брандмауэра:

  1. «Разрешить службам и ресурсам Azure доступ к этому серверу»
  2. Индивидуальные правила межсетевого экрана
  3. Виртуальные сети

Вариант 1 («Разрешить службам и ресурсам Azure доступ к этому серверу»)

Это работает, однако я разрешаю любому брандмауэру Azure доступ к моей базе данных. Этот вид сводит на нет смысл брандмауэра, поскольку любой желающий «неавторизованный» доступ может просто создать учетную запись Azure, создать виртуальную машину / SQL и таким образом обойти брандмауэр.

Вариант 2 (Индивидуальные правила межсетевого экрана)

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

Я немного в неведении с этим IP-адресом, поскольку не могу найти никакой документации Azure об их диапазоне IP-адресов SQL.

Вариант 3 (Виртуальные сети)

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

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

Кто-нибудь может помочь?