SQL Azure Database является "облачным" сервисом баз данных от Microsoft. SQL Azure предоставляет доступную по Интернет функциональность баз данных как сервис. Основанные на "облачных" технологиям решения баз данных, такие как SQL Azure, могут принести множество преимуществ, включая быстрое развертывание, экономичное масштабирование, высокую доступность и сокращение издержек на управление. В данном документе приведены рекомендации по обеспечению безопасности для клиентов, подключающихся к SQL Azure Database и разрабатывающих безопасные приложения с SQL Azure.
Протокол Tabular Data Stream (TDS) используется всеми инструментами и клиентскими библиотеками, осуществляющими взаимодействие с серверами SQL Server и SQL Azure. Сервис SQL Azure доступен только по стандартному порту TCP/1433, используемому протоколом TDS. SQL Azure имеет два типа контроля доступа: SQL Authentification и брандмауэр на сервере. Кроме этого, вы можете настроить брандмауэр на клиенте.
Сетевые брандмауэры и другие средства обеспечения безопасности могут ограничить исходящий доступ к SQL Azure из сети клиента. Клиенты должны разрешить в настройке своей среды разрешение на исходящие TCP-соединения по порту TCP/1433 для того, чтобы позволить приложениям и инструментарию подключаться к SQL Azure. В некоторых сетях разрешен трафик для любого подключения, которое иниицируется изнутри инфраструктуры, но в сетях с бОльшими ограничениями трафик ограничен. Клиенту необходимо внешним образом разрешить трафик с IP SQL Azure в собственных сетях в зависимости от того, на сколько это позволяют сделать политики разрешения доступа. Другими словами, если клиент разрешает исходящий трафик по TCP/1433 для IP SQL Azure, ему также необходимо разрешить входящий трафик с тех же IP по тому же порту. Более удобным может быть разрешение подключений по TCP/1433 для диапазона публичных адресов Microsoft вместо указания конкретного IP SQL Azure. Это позволяет добиться большой гибкости - это уменьшает затраты по контролю доступа в случае добавления IP SQL Azure. Например, точка входа TDS для датацентра SQL Azure North Central US - data.ch1-1.database.windows.net, имеет IP 207.46.203.22. С помощью сервиса http://ws.arin.net/whois/?queryinput=207.46.203.22 можно обнаружить диапазон для IP Microsoft для этого IP: 207.46.0.0/16.
Пример настройки ACL для разрешения подключений на целый диапазон IP для Microsoft SQL Azure Service.
Inbound ACL (outgoing traffic): permit tcp any gt 1023 host <SQL Azure IP> 1433 Outbound ACL (return traffic): permit tcp host <SQL Azure IP> 1433 any gt 1023 established
Использование тега “established” для ACL для исходящего трафика, как показано выше, возвратит трафик для клиента для подключения, установленного изнутри клиентской инфраструктуры. Другими словами, трафик не будет разрешен до тех пор, пока подключение не будет инициировано изнутри клиентской инфраструктуры. Обратите внимание: Входящие подключения не нужны и не рекомендуются. Возможно, необходимо будет настроить прокси-сервера, разрешив исходящий трафик для протокола TDS по TCP/1433. Клиентское прокси-ПО, такое как клиент Microsoft ISA, возможно, придется настроить для разрешения компьютеров-клиентов на использование прокси-серверов для исходящих подключений. Опционально: Если у вас есть локальные SQL Server, которым необходимо осуществлять обмен информацией с SQL Azure для синхронизации данных или по другим причинам, убедитесь, что компьютеры имеют "белые" IP.
На Windows Azure Platform Management Portal настройте брандмауэр SQL Azure для разрешения подключений с вашего IP и/или из Windows Azure. Подробнее по конфигурации брандмауэра – How to configure firewall и SQL Azure firewall.
Всегда используйте формат логина loginname@Servername так как разные инструменты реализуют TDS по-разному. Например, если имя вашего сервера mv2abek9r7.database.windows.net и логин администратора testsa, логин должен быть testsa@mv2abek9r7.
SQL Azure Database поддерживает только SQL Server Authentication. Windows Authentication (integrated security) не поддерживается. Пользователи должны предоставлять учетные данные (логин и пароль) при каждом подключении к SQL Azure. Создайте подходящие логины на вашем сервере SQL Azure. После развертывания сервера SQL Azure создайте пользо��ателя администратора, имеющего администраторские права, подключитесь к базе данных master на вашем сервере SQL Azure с помощью SQL Server Management Studio R2 и воспользуйтесь скриптами CREATE LOGIN для создания пользователей и ролей. Подробнее про управление логинами: Managing databases and logins in SQL Azure
Разработчики и пользователи баз данных могут использовать логины, созданные выше для подключения к SQL Azure.