Как ограничить уровни иерархии SSAS для пользователей? - PullRequest
0 голосов
/ 22 июня 2009

Я относительно новичок в SSA и у меня проблемы с чем-то.

Сценарий:

  • куб с иерархией компании (регион, субрегион, страна, компания)
  • Безопасность измерений применяется путем фильтрации измерения компании путем привязки имени пользователя к списку допустимых компаний.
  • Включить Visual Total включен, так что вы можете видеть итоги только на каждом уровне иерархии для тех компаний, к которым у вас есть доступ.

Проблема:

Было запрошено, что если пользователь может видеть компании только для одной страны (например), он не должен видеть более высокие уровни в иерархии (поскольку итоговые значения будут одинаковыми). то есть, если вы видите только британские компании, вы должны видеть только уровни страны и компании в иерархии, а не уровни субрегиона (Европа) и региона (EMEA).

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

Идеи / вещи, которые я пробовал:

  • Попытка выяснить, влияет ли установка элемента по умолчанию на уровни иерархии, которые вы видите (это не так)
  • Реализовано несколько перспектив которые идентичны друг от друга для иерархия компании, которую они используют; каждый в перспективе использует иерархию, которая имеет начинается с нижнего и нижнего уровня.

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

Итак, в заключение, хммм.

1 Ответ

2 голосов
/ 22 июня 2009

Это можно сделать, удалив разрешения Роли на просмотр элементов в связанных иерархиях.

Для этого:

  • открыть конструктор ролей
  • выберите вкладку Размерные данные
  • выберите соответствующее измерение (убедитесь, что это измерение куба, а не измерение базы данных)
  • для каждой Иерархии атрибутов, которую вы хотите скрыть:
    • выберите соответствующую иерархию атрибутов из раскрывающегося списка
    • выберите "Отменить выбор всех участников"

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

Кроме того, любые вычисления, которые ссылаются на эти члены, будут генерировать воблеры; разрешения вычисляются перед вычислениями, поэтому следует либо удалить эти вычисления, либо прибегнуть к неоптимальному решению, установив для свойства ScriptErrorHandlingMode куба значение IgnoreAll во время работы.

Небольшое примечание: перспективы используются не для безопасности, а для представления. Поэтому, если вы не хотите, чтобы ваши пользователи видели объекты, заблокированные вами в перспективе, имейте в виду, что они могут просматривать их другими способами, например, с помощью MDX или с помощью клиентских функций, которые игнорируют перспективы.

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

...