Общие сведения о фильтрах

С помощью фильтров можно контролировать доступ к значениям данных в кубе. Фильтры - наиболее тонкая настройка уровней безопасности.

При создании фильтра создается набор ограничений для определенных ячеек или диапазона ячеек куба. Затем можно назначить фильтр пользователям или группам.

Возможность создавать, назначать, редактировать, копировать, переименовывать или удалять фильтры зависит от вашей собственной роли безопасности.

  • Если вам назначена роль "Менеджер приложений", вы можете управлять любыми фильтрами для любых групп и пользователей. На вас фильтры не влияют.
  • Если вам назначена роль "Обновление баз данных", вы можете управлять фильтрами для созданных вами приложений.
  • Если вам назначена роль "Менеджер баз данных", вы можете управлять фильтрами в своих приложениях или кубах.
  • Если вам назначена роль "Доступ к базам данных", значения данных в ячейках доступны только для чтения, если доступ не ограничен дополнительными фильтрами.

Создание фильтров

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

См. раздел "Контроль доступа к ячейкам базы данных с помощью фильтров безопасности".

  1. Перейдите к редактору фильтров.

    В интерфейсе Redwood:

    1. На странице Приложения откройте приложение, а затем базу данных (куб).
    2. Нажмите Настройка, а затем нажмите Фильтры.

    В классическом веб-интерфейсе:

    1. На странице "Приложения" разверните приложение.
    2. Откройте меню "Действия" справа от имени куба и запустите инспектор.
    3. Выберите вкладку Фильтры.
  2. Нажмите Добавить.
  3. Введите имя фильтра в текстовом поле Имя фильтра.
  4. В Редакторе фильтров нажмите Добавить.
  5. В разделе Доступ выберите в раскрывающемся меню уровень доступа.
    • Нет: данные недоступны для извлечения и обновления

    • Чтение: данные доступны для извлечения, но недоступны для обновления

    • Запись: данные доступны для извлечения и обновления

    • Чтение метаданных: для извлечения и обновления доступны метаданные (имена измерений и элементов)

      Уровень доступа "Чтение метаданных" переопределяет все остальные уровни. Вместе с существующими фильтрами чтения метаданных применяются дополнительные фильтры. На уровне чтения метаданных не применяется фильтрация по комбинациям элементов (с использованием отношения AND). Фильтры чтения метаданных применяются отдельно к каждому элементу (с использованием отношения OR).

  6. Выберите строку в разделе Спецификация элемента и введите имена элементов, а затем нажмите Отправить Изображение значка отправки фильтра в Redwood..

    Элементы можно фильтровать по отдельности или в комбинациях. Укажите имена измерений или элементов, псевдонимы, комбинации элементов, наборы элементов, определенные с помощью функций, или имена переменных подстановки, которым должен предшествовать символ "&". При создании нескольких записей разделяйте их запятыми.

  7. При необходимости можно создать дополнительные строки для фильтра.

    Если фильтры пересекаются или конфликтуют друг с другом, более детализированные области куба имеют приоритет над менее детализированными и права доступа с большими полномочиями имеют приоритет над правами с меньшими полномочиями. Например, если пользователю предоставлены права на чтение элемента "Фактические данные" и права на запись элемента "Январь", пользователь получает права на запись элемента "Фактические данные за январь".

  8. Нажмите Проверить, чтобы протестировать фильтр.
  9. Нажмите Сохранить.

Чтобы отредактировать фильтр в интерфейсе Redwood, найдите вкладку "Фильтры". Для этого выберите сначала куб, а затем страницу "Настройка". После этого измените фильтр: нажмите на его имя и внесите изменения в редакторе фильтров. Двойное нажатие на строку позволяет изменить ее содержимое.

Чтобы изменить фильтр в классическом веб-интерфейсе, на вкладке "Фильтры" в инспекторе нажмите на его имя и внесите изменения в редакторе фильтров.

Чтобы скопировать, переименовать или удалить фильтр, можно открыть меню "Действия" справа от имени фильтра и выбрать нужную команду.

После создания фильтров назначьте их пользователям или группам.

Создание эффективных динамических фильтров

Чтобы сократить число необходимых определений фильтров, можно создать динамические фильтры на основе данных внешнего источника.

Вместо того чтобы управлять набором жестко заданных фильтров доступа к данным для многих пользователей, можно фильтровать доступ к ячейкам куба из внешнего источника данных с учетом имен участников и пользователей.
Это можно сделать с помощью определения синтаксиса динамического фильтра, включая метод @datasourceLookup и переменные $LoginUser и $LoginGroup. Данные внешнего источника представляют собой файл .csv или реляционную таблицу. Если используется реляционный источник данных, можно загрузить файл .csv в реляционную таблицу.

Синтаксис динамического фильтра

Используя синтаксис динамических фильтров, создавайте гибкие фильтры, которые можно назначить нескольким пользователям и группам.

Наряду с регулярными выражениями элементов определения строк фильтров могут содержать указанные ниже элементы.

$loginuser

Эта переменная хранит значение текущего вошедшего пользователя в среде выполнения. Ее можно использовать совместно с методом @datasourcelookup.

$logingroup

В этой переменной сохраняется значение всех групп, к которым относится текущий пользователь, вошедший в систему. Сюда входят как прямые, так и непрямые группы. При использовании в сочетании с методом @datasourcelookup каждая группа по отдельности ищется в источнике данных.

@datasourcelookup

Этот метод извлекает записи из источника данных.

Синтаксис

@datasourcelookup (dataSourceName, columnName, columnValue, returnColumnName)
Параметр Описание
dataSourceName

Имя внешнего источника данных, заданное в Essbase. Для источника данных на уровне приложения необходимо добавить в качестве префикса имя приложения с точкой.

columnName

Имя столбца источника данных для поиска данного значения columnValue.

columnValue

Значение, которое ищется в столбце columnName.

returnColumnName

Имя столбца источника данных, из которого возвращается список значений.

Описание

Вызов метода @datasourcelookup аналогичен этому запросу SQL:

select returnColumnName from dataSourceName where columnName=columnValue

@datasourcelookup ищет заданный источник данных и записи, где columnName содержит columnValue. Если параметр columnValue задан как $loginuser, этот метод ищет записи, где columnName содержит имя текущего вошедшего пользователя.

Essbase формирует строку определения фильтра, объединяя элементы списка в строку с разделителями-запятыми. Если запись содержит специальные символы, пробелы или только числа, они заключаются в кавычки.

Примеры

Заключайте параметры в кавычки.

Указанный ниже вызов ищет данные в глобальном источнике данных и возвращает список названий магазинов, где управляющую зовут Мэри.

@datasourceLookup("StoreManagersDS","STOREMANAGER","Mary","STORE")

Указанный ниже вызов ищет данные в источнике данных на уровне приложения и возвращает список названий магазинов, где текущий вошедший пользователь является управляющим магазина.

@datasourceLookup("Sample.StoreManagersDS","STOREMANAGER","$loginuser","STORE")

При указанном ниже вызове выполняется поиск данных в источнике данных на уровне приложений и возвращается список названий магазинов, в котором отдел магазина сопоставляется любой группе, к которой относится вошедший в систему пользователь.

@datasourceLookup("Sample.StoreManagersDS","STORE_DEPARTMENT","$logingroup","STORE")

Если вошедший в систему пользователь входит в 3 группы, метод @datasourcelookup возвращает все сопоставленные значения столбцов для каждой группы.

Процедура создания динамических фильтров

Ниже приведена общая процедура создания динамических фильтров.

Эта процедура использования динамических фильтров подразумевает наличие куба, пользователей и групп, которым предоставлены определенные права.

  1. Укажите тип источника данных: файл или реляционный источник.
  2. Создайте подключение и источник данных Datasource в Essbase, на глобальном уровне или на уровне приложения.
  3. Создайте фильтры на уровне кубов.
    • В интерфейсе Redwood перейдите к кубу, выберите Настройка, а затем выберите Фильтры.
    • В классическом веб-интерфейсе воспользуйтесь разделом Фильтры в инспекторе базы данных.

  4. Определите строки для каждого фильтра, используя синтаксис динамических фильтров, чтобы должным образом применить переменные $loginuser, $logingroup и метод @datasourcelookup.
  5. Назначьте фильтры пользователям или группам.
  6. Если вы назначили фильтр группе, назначьте группу приложению, к которому необходимо применить фильтр.
    • В интерфейсе Redwood перейдите к приложению, выберите Настройка, а затем выберите Разрешения.
    • В классическом веб-интерфейсе воспользуйтесь разделом Разрешения в инспекторе приложения.

Пример динамического фильтра

Этот динамический фильтр взаимодействует с кубом Efficient.UserFilters, который доступен в галерее в виде шаблона.


Динамический фильтр с тремя строками, предоставляющий вошедшему пользователю доступ к чтению метаданных.

Чтобы узнать, как создать и применить этот динамический фильтр, выгрузите шаблон рабочей книги Efficient_Filters.xlsx из раздела галереи "Технические" и следуйте инструкциям README в рабочей книге. Галерея доступна в разделе Файлы веб-интерфейса Essbase.