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

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

Для программного изменения некоторые настройки брандмауэра в SQL Azure. Сначала нужно выставить первоначальные настройки брандмауэра SQL Azure на портале управления (рис.1).

Для управления основными настройками (правилами) брандмауэра SQL Azure нам доступны несколько хранимых процедур:

sp_set_firewall_rule

sp_delete_firewall_rule

И представление sys.firewall_rules.

image

Рис.1. Настройки брандмауэра SQL Azure на портале управления.

Для того, чтобы изменить параметры брандмауэра, нам можно воспользоваться SQL Server Management Studio 2008 R2. Для подключения к необходимому серверу SQL Azure скопируем DNS-адрес сервера (доступен во вкладке свойства на портале управления при выбранном сервере (рис.2).

image

Рис. 2. Подключение к серверу SQL Azure с помощью SSMS 2008 R2.

Подключившись, нам необходимо выбрать базу данных master (так как именно в ней хранятся все основные настройки) и использовать хранимую процедуру, доступную пользователю – sp_set_firewall_rule. Пример:

exec sp_set_firewall_rule N’Alexander Belotserkovskiy’, ‘109.123.146.181’,’109.123.146.182’

Аналогичным образом можно выполнить запрос, находясь на портале управления SQL Azure. Для этого перейдите на портал SQL Azure и нажмите “Новый запрос”, после чего введите и выполните запрос (рис. 3).

image

Рис. 3. Выполнение запроса на изменение правил брандмауэра на портале управления SQL Azure.

Чтобы проверить наличие свежедобавленных правил, выполните запрос:

select * from sys.firewall_rules

image

Рис.4. Результат выборки правил брандмауэра SQL Azure.

Выполнение запроса

exec sp_delete_firewall_rule N’Alexander Belotserkovskiy’

Приведёт к удалению записи из правил брандмауэра.

Альтернативные способы

Это sqlcmd.exe и, собственно, программный C#-код. С sqlcmd.exe всё понятно – с помощью этой утилиты можно выполнять SQL-код.

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

String client = Request.UserHostAddress();

Чтобы получить клиентский IP-адрес.