Это можно сделать, удалив разрешения Роли на просмотр элементов в связанных иерархиях.
Для этого:
- открыть конструктор ролей
- выберите вкладку Размерные данные
- выберите соответствующее измерение (убедитесь, что это измерение куба, а не измерение базы данных)
- для каждой Иерархии атрибутов, которую вы хотите скрыть:
- выберите соответствующую иерархию атрибутов из раскрывающегося списка
- выберите "Отменить выбор всех участников"
Тогда убедитесь, что используемая ими перспектива не пытается отобразить иерархии; любая попытка сделать это приведет к ошибке клиента, потому что, несомненно, ваш куб имеет различные взаимосвязанные запросы, ссылающиеся на эти элементы.
Кроме того, любые вычисления, которые ссылаются на эти члены, будут генерировать воблеры; разрешения вычисляются перед вычислениями, поэтому следует либо удалить эти вычисления, либо прибегнуть к неоптимальному решению, установив для свойства ScriptErrorHandlingMode куба значение IgnoreAll во время работы.
Небольшое примечание: перспективы используются не для безопасности, а для представления. Поэтому, если вы не хотите, чтобы ваши пользователи видели объекты, заблокированные вами в перспективе, имейте в виду, что они могут просматривать их другими способами, например, с помощью MDX или с помощью клиентских функций, которые игнорируют перспективы.
Небольшое примечание с другой стороны: некоторые люди предполагают, что безопасность в этой степени является проблемой на стороне клиента. Я не согласен.