Итак, предыдущая часть была посвящена настройке сервиса SQL Reporting в Windows Azure. Мы рассмотрели два варианта настройки сервисов публикации отчетов: как сервис (SQL Reporting) и с использованием виртуальной машины SQL Server (SSRS). Теперь давайте разберем способ настройки сервисов SQL Reporting и SQL Server для поддержки сценариев multi-tenant, когда один сервис отчетов может использоваться для разных источников данных.
Публикация проекта
- Откройте проект отчетов в “SQL Server Business Intelligent Development Studio”;
- В контекстном меню проекта выберите пункт “Properties”;
- Мы будет разделять отчеты одного заказчика от другого, используя разные корневые каталоги. Для этого в значения полей с префиксом “Target…Folder” укажите корневой каталог с именем заказчика;
- Опубликуйте проект отчетов для разных заказчиков в SQL Reporting service и/или виртуальную машину SQL Server.
Multi-tenant: SQL Reporting
- Перейдите в Windows Azure Management Portal, секцию “SQL Reporting”, вкладка“Users”;
- Создайте для каждого заказчика по учетной записи:
- Перейдите на вкладку “Items”;
- Выберите каталог с отчетами заказчика, который вы хотите сконфигурировать и нажмите кнопку “Manage Permissions”;
- Выберите пункт “Assign item-specific permissions” и оставьте в списке пользователей только тех, кто будет иметь доступ к этому каталогу отчетов.
Multi-tenant: SQL Server Reporting Services
Как было сказано ранее, что оба решения используют механизм разграничения прав доступа к каталогам отчетов на основе ролей. Этот метод аутентификации основан на Windows аутентификации. Таким образом, каждый пользователь, который имеет Windows аккаунт для доступа к виртуальной машине SQL Server, может использовать SQL Server Reporting Services.
Создание Windows аккаунта
- Подключитесь к виртуальной машине SQL Server по RDP;
- Перейдите в Панель управления Windows и выберите пункт “Add or remove user accounts”;
- Выберите ссылку “Create new account”;
- Укажите имя нового пользователя и его тип;
- Нажмите кнопку “Create account”;
- Выберите нового пользователя и перейдите по ссылке “Create a password”;
- Укажите пароль пользователя;
Настройка Report Manager
- Перейдите по URL следующего вида: “http://YOUR_MACHINE_NAME.cloudapp.net/Reports”. Для доступа используйте логин и пароль администратора виртуальной машины;
- Выберите каталог отчетов заказчика. Затем нажмите кнопку “Folder Settings”;
- Перейдите на вкладку “Security” и нажмите кнопку“Edit Item Security”;
- Затем выберите пункт “New Role Assignment”;
- Укажите имя пользователя и роли, которые ему необходимо присвоить.
- Настройка завершена.
Заключение
Как вы видите, оба решения предоставляют одинаковые возможности для сервиса построения отчетов. Обычный SQL Server также можно использовать для соединения с базой данных, используя механизмы Windows аутентификации. SQL Azure и сервисы SQL Reporting данной возможности не поддерживают, однако это известное ограничение облачной платформы Windows Azure.
Согласно сравнению цен, сервис SQL Reporting предпочтителен к использованию в решении, где отчеты генерируются нечасто и основном доступны в виде static контента. Если же ваше приложение или пользователи могут генерировать множество отчетов с течением времени, тогда SQL Server Reporting Services размещенные на отдельной виртуальной машине является более предпочтительным вариантом. Как бонус вы также получите все возможности SQL Server.
Однако конкретное решение, какой из вариантов построения сервиса отчетов использовать должно быть прежде всего проанализировано с точки зрения затрат и ресурсов в каждом конкретном случае.
Автор: RisingStar