Предоставление настраиваемого доступа к данным измерений (Analysis Services)

Применимо к: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

После включения доступа на чтение для куба можно задать дополнительные разрешения, которые явно разрешают или отклоняют доступ к элементам измерений (включая меры, содержащиеся в разделе "Измерение мер" со всеми мерами, использующимися в кубе). Например, для нескольких категорий торговых посредников может понадобиться задать разрешения, чтобы исключить данные для определенного бизнес-типа. На следующей иллюстрации показан эффект до и после отклонения доступа к бизнес-типу "Хранилище" в измерении "Торговый посредник".

Сводные таблицы с элементом измерения и без нее.

По умолчанию, если вы можете считывать данные из куба SQL Server Analysis Services, у вас автоматически есть разрешения на чтение для всех мер и элементов измерения, связанных с этим кубом. Хотя это поведение может быть достаточным для многих сценариев, иногда требования к безопасности вызывают более сегментированную стратегию авторизации с несколькими уровнями доступа для разных пользователей в одном измерении.

Можно ограничить доступ, выбрав, каким элементам разрешить (AllowedSet) или отклонить (DeniedSet) доступ. Это можно сделать, выделив элементы измерений или отменив их выделение, чтобы включить их в роль или исключить из нее.

Базовая безопасность измерения — самый простой способ. Нужно просто выбрать, какие атрибуты измерений и иерархии атрибутов следует включить в роль или исключить из нее. Расширенная безопасность является более сложной и требует экспертизы в многомерных скриптах. Оба подхода описываются ниже.

Примечание

Следующие инструкции предполагают наличие клиентского подключения, выдающего запросы с многомерными выражениями. Если клиент использует DAX, например Power View в Power BI, безопасность измерения в результатах запроса незаметна.

Предварительные требования

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

Проверка наличия помех безопасности измерений: меры по умолчанию, элементы по умолчанию и меры, используемые в выражениях меры

  1. В SQL Server Management Studio щелкните куб правой кнопкой мыши и выберите командуСоздать | Редактор запросов окно для создания | куба.

  2. Найдите параметр DefaultMeasure. Следует найти одну строку для куба и по одной строке для каждой перспективы. При определении безопасности измерений избегайте ограничения доступа к мерам по умолчанию.

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

  4. Наконец, выполните поиск строки DefaultMember. Запишите все атрибуты, которые служат в качестве элемента атрибута по умолчанию. Не устанавливайте ограничения на эти атрибуты при настройке безопасности измерений.

Базовая безопасность измерения

  1. В SQL Server Management Studio подключитесь к экземпляру SQL Server Analysis Services, разверните узел Роли для соответствующей базы данных в обозреватель объектов, а затем щелкните роль базы данных (или создайте новую роль базы данных).

    Роль должна уже иметь доступ на чтение к кубу. Если вам нужна помощь с этим шагом, см. раздел Предоставление разрешений куба или модели (службы Analysis Services).

  2. В разделе Dimension Data | Basic выберите измерение, для которого задаются разрешения.

  3. Выберите иерархию атрибутов. Могут быть доступны не все атрибуты. В списке Иерархия атрибутов появятся только атрибуты с параметром AttributeHierarchyEnabled .

  4. Выберите элементы, которым следует разрешить или отклонить доступ. По умолчанию доступ разрешен (параметр Выбрать все элементы ). Рекомендуется сохранить значение по умолчанию, а затем очистить индивидуальные элементы, которые не должны отображаться в учетных записях пользователя и группы Windows на панели Членства в этой роли. Преимущество состоит в том, что новые элементы, добавляемые в будущие операции обработки автоматически доступны для пользователей, подключающихся с помощью этой роли.

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

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

    Примечание

    При применении разрешений, которые усекают элементы измерения, автоматическое повторное вычисление суммарных итогов не выполняется. Предположим, что элемент Все иерархии атрибутов возвращает счетчик 200 перед применением разрешений. После применения разрешений, которые отклоняют доступ для некоторых элементов, элемент Все по-прежнему возвращает 200, даже если видимые пользователю значения элементов гораздо меньше. Чтобы не путать клиентов куба, можно настроить элемент Все как статистическое выражение, содержащее не полный список элементов иерархии атрибута, а только те элементы, к которым участники роли имеют доступ. Чтобы отозвать это поведение, можно включить Visual Totals на вкладке Дополнительно при настройке безопасности измерения. После включения во время выполнения запроса вместо получения заранее вычисленного значения статистическое выражение будет вычисляться. Это может заметно повлиять на производительность запроса, поэтому функцию следует использовать только при необходимости.

Скрытие мер

В статье Предоставление пользовательского доступа к данным ячеек (службы Analysis Services) было объяснено, что для полного скрытия всех визуальных аспектов меры, а не только ее данных ячеек, требуются разрешения на члены измерения. В этом разделе описывается, как отклонить доступ к метаданным объекта меры.

  1. В разделе Dimension Data | Basic прокрутите список Измерения вниз, пока не достигнете измерений куба, а затем выберите Измерение мер.

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

Примечание

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

Дополнительная безопасность измерений

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

Можно изменить конструктор многомерных выражений для записи многомерного выражения. Дополнительные сведения см. в разделе Построитель многомерных выражений (службы Analysis Services — многомерные данные). На вкладке Дополнительно доступны следующие параметры.

Attribute
Выберите атрибут, безопасность которого необходимо настроить.

Разрешенный набор элементов
Свойство AllowedSet можно разрешить в набор без элементов (по умолчанию), с некоторыми или всеми элементами. Если при предоставлении доступа к атрибуту не определяются никакие элементы допустимого набора, то будет разрешен доступ ко всем элементам. Если при предоставлении доступа к атрибуту определяется конкретный набор элементов атрибута, то отображаться будут только явно разрешенные элементы.

Создание AllowedSet окажет влияние, если атрибут участвует в многоуровневой иерархии. Предположим, роль разрешает доступ к штату Вашингтон (рассмотрим сценарий, где роль предоставляет разрешения отделу продаж в штате Вашингтон компании). Пользователи, подключающиеся через эту роль, увидят только элементы в цепи запросов с предками (США) или потомками (Сиэтл и Редмонд), включающие штат Вашингтон. Поскольку другие штаты не разрешены явно, эффект будет такой, как если бы они были отклонены.

Примечание

При определении пустого набора ({}) элементов атрибута никакие элементы атрибута не будут видны роли базы данных. Отсутствие допустимого набора не трактуется как пустой набор.

Запрещенный набор элементов
Свойство DeniedSet можно разрешить в набор без элементов, с некоторыми или со всеми элементами атрибута (по умолчанию). Если отклоненный набор содержит только определенный набор элементов атрибутов, доступ к роли базы данных отклоняется только для этих конкретных элементов, а также для потомков, если атрибут находится в многоуровневой иерархии. Рассмотрим пример отдела продаж в штате Вашингтон. Если Вашингтон находится в DeniedSet, пользователи, подключающиеся через эту роль, увидят все остальные штаты, за исключением Вашингтона и атрибутов его потомков.

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

Элемент по умолчанию
Свойство DefaultMember определяет набор данных, возвращаемый клиенту в том случае, если атрибут не включается явным образом в запрос. Если атрибут не включен явным образом, SQL Server Analysis Services использует один из следующих элементов по умолчанию для атрибута:

  • Если роль базы данных определяет элемент по умолчанию для атрибута, SQL Server Analysis Services использует этот элемент по умолчанию.

  • Если роль базы данных не определяет элемент по умолчанию для атрибута, SQL Server Analysis Services использует элемент по умолчанию, определенный для самого атрибута. Элемент по умолчанию для атрибута, если не указывается иное, является элементом All (если только атрибут не определяется как не включаемый в статистическое вычисление).

Предположим, роль базы данных указывает Male в качестве элемента по умолчанию для атрибута Gender . Если запрос явно не включает атрибут Gender и не указывает другой член для этого атрибута, SQL Server Analysis Services вернет набор данных, включающий только клиентов-мужчин. Дополнительные сведения о настройке элементов по умолчанию см. в разделе Определение элемента по умолчанию.

Активировать визуальные итоги
Свойство VisualTotals указывает на то, вычисляются ли отображаемые статистические значения ячеек в соответствии со всеми значениями ячеек или только в соответствии со значениями ячеек, видимых роли базы данных.

По умолчанию свойство VisualTotals отключено (установлено значение False). Этот параметр по умолчанию повышает производительность, так как SQL Server Analysis Services может быстро вычислить общее количество всех значений ячеек, а не тратить время на выбор значений ячеек для вычисления.

Однако отключение свойства VisualTotals может оказать отрицательное влияние на безопасность, если пользователь может воспользоваться статистическими значениями ячеек для вывода значений элементов атрибута, к которым роль базы данных пользователя не имеет доступа. Например, SQL Server Analysis Services использует значения для трех членов атрибута для вычисления агрегированного значения ячейки. У роли базы данных есть доступ к просмотру двух из указанных трех элементов атрибута. Используя статистическое значение ячейки, член данной роли базы данных сможет вывести значение третьего элемента атрибута.

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

Проверка
Щелкните, чтобы проверить синтаксис многомерных выражений, заданный на этой странице.

См. также:

Предоставление разрешений кубу или модели (службы Analysis Services)
Предоставление настраиваемого доступа к данным ячейки (службы Analysis Services)
Предоставление разрешений структурам интеллектуального анализа данных и моделям интеллектуального анализа данных (службы Analysis Services)
Предоставление разрешений объекту источника данных (службы Analysis Services