Возможности работы с SQL Database Azure

advertisement
ВОЗМОЖНОСТИ РАБОТЫ С SQL DATABASE AZURE
Крапчатова Наталья Сергеевна
Пермский национальный исследовательский политехнический
университет, студент группы КОБ-11-1, г.Пермь
natali.93@list.ru
Кокоулин Андрей Николаевич
кандидат технических наук, Пермский национальный исследовательский
политехнический университет, доцент кафедры АТ, г.Пермь
a.n.kokoulin@gmail.com
ABILITY TO WORK WITH SQL DATABASE AZURE
Krapchatova Natalia Sergeevna
Perm national research polytechnic university, student of group
KOB-11-1, Perm
natali.93@list.ru
Kokoulin Andrey Nikolayevich
candidate of technical sciences, Perm national research polytechnic university,
associate professor of the department АТ, Perm
a.n.kokoulin@gmail.com
В данной статье рассматривается часть платформы Windows Azure
Platform, а именно SQL Azure. Представлены варианты работы с SQL database
Azure и способы обеспечения безопасности данных.
This article discusses the platform of the Windows Azure Platform, namely SQL
Azure. It presents options for working with SQL database Azure and how to ensure
data security.
Ключевые слова: SQL database; Azure.
Keywords: SQL database; Azure.
В наше время все большую популярность набирают облачные технологии.
Облачные технологии представляют собой среду для хранения и обработки
информации, объединяющую в себе аппаратные средства, лицензионное
программное обеспечение, каналы связи, а также техническую поддержку
пользователей. Особенностью таких технологий является независимость от
аппаратной
платформы
и
географической
территории,
а
возможность
масштабируемости. Клиент может работать с облачными сервисами с любой
точки планеты и с любого устройства, имеющего доступ в интернет. К таким
технологиям относится платформа Windows Azure Platform.
Платформа Windows Azure Platform — это платформа Microsoft для
разработки и выполнения облачных сервисов, реализующая модель Platform As
A Service (PaaS) и состоящая из следующих компонентов[4]:
Windows
Azure—
эластичная,
масштабируемая,
безопасная
и
высокодоступная операционная система в облаке («операционная система как
сервис»). Предоставляет вычислительные мощности и средства хранения
информации, а так же ряд механизмов управления сервисами.
SQL Azure— реляционная база данных, доступная как сервис («база
данных как сервис»). Поддерживает основные возможности Microsoft SQL
Server по хранению реляционных данных и не требует администрирования и
сопровождения.
Windows
Azure
программные
AppFabric—
модули
(сервисы)
для
обеспечения коммуникаций (Service Bus) и контроля доступа (Access Control)
[4].
Разберем немного подробнее SQL Azure. Данный сервер, как говорилось
выше, базируется на технологиях Microsoft SQL Server и обеспечивает
масштабируемую и устойчивую к ошибкам базу данных, доступную как сервис.
Работа SQL Azure базируется на компоненте Cloud Fabric, который управляет
экземплярами
базы
данных
и
обеспечивает
их
развертывание,
администрирование, обновление, мониторинг и поддерживает весь жизненный
цикл работы с данными. От пользователей требуется только выполнение задач
создания схемы и ее поддержания, оптимизации запросов и управления
безопасностью[4].
Работа с SQL Azure основана на трех механизмах — учетной записи,
сервера и базы данных. Учетная запись является владельцем одного или более
серверов. Сервер имеет одну или более базу данных. Он содержит метаданные
о базе данных и данные по ее использованию. Сервер является единицей
аутентификации, георасположения, биллинга и отчетности. Каждая база
данных в рамках сервера хранит стандартные SQL-объекты — пользователей,
таблицы, представления, индексы и т.п.
Посмотрим на SQL Azure в действии. Первым шагом работы является
создание сервера, на котором в дальнейшем будет развернута база данных, и
учетной записи для входа. Созданный сервер представлен на рис.1.
Рис.1. Созданный сервер.
На уже существующем сервере можно расположить не одну базу данных.
Их
размер
ограничивается
уровнем
службы.
Уровень
службы
Basic
предназначен для приложений с низкими транзакционными рабочими
нагрузками и поддерживает базы данных до 2 Гб в размере. Уровень службы
Standard предназначен для работы с транзакционными рабочими нагрузками на
среднем уровне производительности со встроенными функциями обеспечения
непрерывности бизнеса, включая восстановление на определенный момент
времени и поддерживает базы данных до 250 Гб. Уровень службы Premium
предназначен для критически важных баз данных с самым высоким уровнем
производительности, хранения и доступа к улучшенным функциям обеспечения
непрерывности бизнеса, включая активную георепликацию между несколькими
регионами Azure по вашему выбору, и поддерживает базы данных до 1 Тб[7].
После создания базы данных на имеющемся сервере можно увидеть панель
мониторинга, которая содержит данные о подключения, службах хранения,
сервере, состоянии, кроме того можно просмотреть отчеты о работе базы
данных, произвести настройки самой базы, также настройки безопасности и
аудита. Вход в базу данных открывает перед пользователем возможности
конструирования и администрирования, а также общие сведения, включающие
краткое руководство, возможности базы данных и дополнительным сведения,
которые помогут новым пользователям. При создании и настройке таблиц
можно использовать несколько способов. Первый способ использование
конструктора, второй – использование команд Transact-SQL.
Для примера, реализуем базу данных, состоящую из двух маленьких
таблиц Студенты, Группы, связанных между собой. Создание таблицы первым
способом представлено на рис. 3., а вторым – на рис.4.
Рис.3. Создание таблицы Студенты.
Стоит отметить, каждая таблица базы данных SQL Database должна иметь
кластерный индекс. При объявлении первичного ключа таблицы по умолчанию
создается кластерный индекс столбца основного ключа, или нескольких
столбцов, в зависимости от вида ключа. Кластеризованные индексы сортируют
и хранят строки данных в таблице на основании значений их ключей. Для
каждой таблицы может существовать лишь один кластерный индекс, так как
сами строки данных можно сортировать только в одном порядке. Созданные
таблицы имеют связь по названию группы[6].
Рис.4. Создание таблицы Группы.
Помимо работы с базами данных через веб-браузер, есть возможность
осуществления данной деятельности через Visual Studio, в которой также
реализованы многие функции работы. На рис.5 показана Visual Studio с
данными таблицы Студенты, созданной с помощью конструктора в веббраузере (рис.4).
Как можно заметить, SQL Database Azure имеет помимо разнообразных
возможностей, еще и различные способы реализации действий, что позволяет
выбрать наиболее подходящий для каждого.
Рис.5. Данные таблицы КОБ-11.
Отдельно коснемся вопроса безопасности. Все соединения с SQL Azure
шифруются на основе TLS (SSL), что соответствует добавлению в строку
соединения свойств Encrypt=True; TrustServerCertificate=true. Это помогает
устранить
угрозу
атак
типа
man-in-the-middle(«человек
посередине»).
Следующее средство защиты SQL Database Azure, и, пожалуй, основное —
брандмауэр SQL Azure Databases, которым изначально блокируется весь доступ
к серверу SQL Azure Databases. Попытки подключения до соответствующей
настройки будут неудачны. Для начала работы с сервером SQL Azure Databases
необходимо зайти на портал SQL Azure и определить настройки брандмауэра
для доступа к серверу. Брандмауэром SQL Azure можно управлять через портал
SQL Azure или напрямую в главной базе данных с помощью хранимых
процедур, таких как sp_set_firewall_rule и sp_delete_firewall_rule. Блокировка
такого доступа к серверу позволяет сократить риск атак типа «отказ в
обслуживании» (denial-of-service, DoS)[1].
Управление пользовательскими учетными записями — еще один аспект,
который нужно всегда контролировать. При создании нового сервиса в виде
сервера SQL Azure вместе с БД master создается административный логин,
который выполняет ту же роль, что и sa в обычном SQL Server. Создание
нового логина осуществляется при помощи команды create login[3]. В отличие
от обычного SQL Server нельзя указывать политики сложности и срока
действия пароля; то, что человек должен сменить его при первом заходе; базу
данных по умолчанию, куда будет устанавливаться соединение и т.д.
В базе данных Test создадим несколько пользователей с разными ролями и
правами доступа. Важно помнить, что для входа в систему необходимо создать
login, а после этого – user. Пользователю testi присвоим роль db_datareader, а
пользователю
Nata
–
роль
db_datawriter(рис.6).
Результатом
является
невозможность пользователем testi добавлять и пользователем Nata выбирать
данные, что показано на рис.7. и рис.8. соответственно.
Разграничение доступа является эффективным средством обеспечения
безопасности, но его одного, зачастую, не достаточно для достижения
необходимого уровня зашиты.
Рис.6. Присваивание ролей пользователям.
Рис.7. Запрос пользователя testi.
Рис.8. Запрос пользователя Nata.
Помимо разграничение доступа в самой базе данных, можно ограничивать
его и к самим базам. Для этого существует проверка подлинности Azure Active
Directory, которая реализует механизм подключения к базе данных SQL
Microsoft Azure с помощью удостоверений в Azure Active Directory (Azure AD).
С
помощью
проверки
подлинности
Azure
Active
Directory
можно
централизованно управлять удостоверениями пользователей базы данных и
другими службами Майкрософт[2]. Azure AD включает полный набор
возможностей управления удостоверениями, в том числе многофакторную
проверку подлинности, регистрацию устройств, самостоятельное управление
паролями,
самостоятельное
управление
группами,
управление
привилегированной учетной записью, управление доступом на основе ролей,
отслеживание использования приложений, расширенный аудит, мониторинг
безопасности и предупреждения. Эти возможности помогают защитить
облачные
приложения,
упростить
ИТ-процессы,
сократить
расходы
и
обеспечить соблюдение корпоративных требований[5].
Частично рассмотрев работу и сервисы SQL Database Azure, можно
сказать, что данная облачная реляционная база данных обладает большим
спектром возможностей. В каждом сервере SQL Azure можно создать
несколько баз данных с таблицами, хранимыми процедурами, индексами и
другими объектами. Это позволяет пользователю разрабатывать большие базы
данных на облаке, тем самым не занимая место у пользователя. Также подобная
модель данных позволяет эффективно применять существующие навыки
проектирования реляционных баз данных и программирования в Transact-SQL.
А многоуровневая система безопасности гарантирует сохранность данных SQL
Database Azure.
Список литературы
1.
Безопасность
в
SQL
Azure
[Электронный
URL:http://blogs.technet.com/b/isv_team/archive/2012/02/12/3480396.aspx
ресурс].(дата
обращения 13.11.2015).
2.
Бухэм Рик. Подключение к базе данных SQL с использованием
проверки подлинности Azure Active Directory[Электронный ресурс].-URL:
https://azure.microsoft.com/ru-ru/documentation/articles/sql-database-aadauthentication/(дата обращения 13.11.2015).
3.
Даденков С.А., Кон Е.Л. Метод расчета числа узлов-соперников за
канал в сети со случайным множественным доступом, построенной на основе
нейрочипов // Нейрокомпьютеры: разработка, применение. М.: Радиотехника,
2015. № 10. С. 26-32.
4.
Федоров А., Мартынов Д. Windows Azure. Облачная платформа
Microsoft. Microsoft, 2010. – 100 с.
5.
URL:
Что такое Microsoft Azure Active Directory[Электронный ресурс].https://azure.microsoft.com/ru-ru/documentation/articles/active-directory-
whatis/(дата обращения 13.11.2015).
6.
Microsoft. Как работает SQL Database (SQL Azure)? - Microsoft
Corp., 2012. – 15 с.
7.
SQL
database
[Электронный
ресурс].
URL:https://azure.microsoft.com/ru-ru/pricing/details/sql-database/
обращения:12.11.15).
–
(дата
Download