безопасного контекста тенанта и секретный ключ тенанта для дешифрования данных в
базе данных, чтобы с ними можно было работать. Недостаток этого метода в
невозможности индексации шифрованных столбцов, что означает необходимость
компромисса между безопасностью данных и производительностью. Старайтесь
избегать использования полей индекса, содержащих конфиденциальные данные.
Фильтрация данных тенанта (применяется к модели с совместно используемой базой
данных с совместно используемой схемой). Используйте представления SQL для
выбора из таблиц подмножеств данных по ID тенанта или пользователя либо по
идентификатору безопасности учетной записи тенанта. Предоставляйте тенантам
доступ только к их представлениями, а не ко всей таблице. Это не допустит просмотр
или доступ пользователей к любым строкам совместно используемых таблиц,
принадлежащим другим тенантам или пользователям.
Хранение и расширяемость данных
Существует множество способов хранения размещаемых данных. Для реализации хранения
данных в размещаемых приложениях разрабатывается два разных подхода: системы
управления размещенными реляционными базами данных (hosted relational database
management systems, RDBMS) и нереляционное хранилище в облаке. Реляционные базы
данных обеспечивают хранение структурированных данных и больше подходят для
транзакционных систем или приложений с интенсивным вводом/выводом. Также обычно
такие базы данных обеспечивают меньшую задержку и расширенные возможности запросов.
Под хранилищем в облаке, напротив, подразумевается хранилище для любых типов данных,
которое размещается в облаке; сюда также относятся сервисы, обеспечивающие
функциональность базы данных, сервисы для неструктурированных данных (например,
хранилище файлов для цифровых мультимедиа), сервисы синхронизации данных и устройства
хранения данных, подключаемые к сети (network-attached storage, NAS). Сервисы данных часто
предоставляются по модели повременной оплаты или, в данном случае, оплате за гигабайт
данных (включая и хранящиеся, и переданные данные).
Хранение в облаке предлагает ряд преимуществ, таких как возможность хранения и
извлечения больших объемов данных из любой точки земного шара в любое время. Сервисы
хранения данных быстры, недороги и практически неограниченно масштабируемы. Могут
возникать проблемы с надежностью, но даже самые лучшие сервисы дают сбой время от
времени. Также возможны неполадки с приложениями, чувствительными к большой
задержке, поскольку каждое взаимодействие с сервисом хранения требует передачи данных
по сети. Наконец, для сисем хранения в облаке может быть проблематичной поддержка
транзакций. Как правило, эти системы ориентированы на секционирование и доступность и не
всегда могут гарантировать согласованность.
Хранилище Microsoft Azure (на момент написания данного документа находящееся на этапе
ранней предварительной версии
) включает ряд сервисов, обеспечивающих различные нужды
хранилища и доступных через REST API:
С 1 февраля 2010 года в промышленной эксплуатации (прим. научного редактора).