Поделиться через


Занятие 2. Создание атрибутов для защиты на уровне строк

Чаще всего применяется метод защиты на уровне строк, при котором выбор отображаемых строк определяется на основе сведений об имени входа пользователя. На этом занятии в сущности Employee будет создан атрибут для фильтрации данных по имени входа пользователя. После создания этот фильтр будет изменен как формула для использования функции GetUserID.

ПримечаниеПримечание

Это занятие предполагает, что на компьютере открыта среда Business Intelligence Development Studio и в ее окне отображается модель отчета.

Создание атрибута фильтрации, изменяемого как формула

  1. В древовидном представлении выберите сущность Employee.

    Атрибуты сущности Employee отображаются в представлении списка.

  2. Щелкните правой кнопкой мыши сущность Employee, укажите Создать и выберите пункт Фильтр.

    Откроется диалоговое окно Фильтрация данных.

  3. В списке Поля дважды щелкните Login ID2.

    К фильтру добавляется условие фильтра по полю Login ID2, которое было создано на занятии 1.

  4. В фильтре щелкните правой кнопкой мыши Login ID2 и выберите пункт Изменить как формулу.

    Открывается диалоговое окно Определение формулы, содержащее формулу Login ID2=Empty.

  5. В поле Формула выделите слово Empty.

  6. Перейдите на вкладку Функции и разверните узел Сведения.

  7. Дважды щелкните функцию GetUserID.

    Слово Empty заменяется на GetUserID().

  8. Нажмите кнопку ОК.

    Диалоговое окно Определение формулы закрывается. В предложении фильтра отображается Login ID2=GetUserID.

  9. Еще раз нажмите кнопку ОК.

    Диалоговое окно Данные фильтра закрывается. В представлении списка будет выведен атрибут NewFilter. Переименуем его.

Переименования атрибута

  1. В представлении списка щелкните правой кнопкой мыши атрибут NewFilter и выберите пункт Переименовать.

  2. Введите UserIDFilter.

    Теперь зададим атрибуту необходимые свойства.

Изменение свойств атрибута

  1. В представлении списка выберите атрибут UserIDFilter.

  2. В окне «Свойства» найдите свойство IsFilter.

  3. Убедитесь, что значение свойства IsFilter равно True.

  4. Найдите свойство Hidden.

  5. Нажмите стрелку раскрывающегося списка Hidden и выберите значение True.

    В результате установки свойства Hidden в значение True пользователи не смогут видеть этот атрибут при создании отчета на основе этой модели. Поскольку этот атрибут используется в качестве фильтра безопасности, пользователям необязательно его видеть при создании собственных отчетов.

  6. В представлении списка выберите атрибут Login ID2.

  7. В окне Свойства найдите свойство Nullable.

    Поскольку у атрибута Login ID2 свойство Nullable имеет значение True, для атрибута UserIDFilter значение свойства Nullable также должно быть равно True. Однако в качестве фильтра безопасности не обязательно пользоваться этим свойством.

  8. Нажмите стрелку раскрывающегося списка Nullable и выберите значение True.

Присвоение атрибута коллекции фильтров безопасности

  1. В древовидном представлении выберите сущность Employee.

  2. В окне «Свойства» найдите свойство SecurityFilters.

  3. Выберите свойство SecurityFilters и нажмите кнопку с многоточием ().

    Открывается диалоговое окно Изменение коллекции ссылок атрибута.

  4. Нажмите кнопку Добавить.

  5. Откроется диалоговое окно Атрибуты фильтра безопасности.

  6. Убедитесь, что в списке Сущности выбрана сущность Employee.

  7. В списке Поля выберите атрибут UserIDFilter.

  8. Нажмите кнопку ОК, а затем нажмите кнопку ОК еще раз.

    Теперь сохраним изменения моделей и выполним повторное развертывание модели на сервере отчетов.

Сохранение и развертывание модели отчета

  1. В меню Файл выберите команду Сохранить все.

  2. В обозревателе решений щелкните правой кнопкой мыши проект Adventure Works Model и выберите команду Развернуть.

    Модель будет развернута на сервере отчетов.

    Важное примечаниеВажно!

    Чтобы убедиться, что модель успешно развернута, можно просмотреть вкладку Список ошибок. Если возникли какие-либо ошибки, то их необходимо устранить, прежде чем продолжать работу.

Следующие шаги

Атрибут успешно создан и добавлен в коллекцию SecurityFilters. Теперь необходимо включить безопасность элемента модели отчета в среде SQL Server Management Studio. См. раздел Занятие 3. Включение защиты на уровне строк в диспетчере отчетов.