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


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

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

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

Сводная таблица, показывающая разрешенные и запрещенные ячейки

Разрешения для ячейки применяются к данным внутри ячейки, и не применяются к ее метаданным. Обратите внимание, как ячейка выводится на экран в результатах запроса, отображая значение #N/A вместо фактического значения ячейки. Значение #N/A отображается в ячейке, если только клиентское приложение не преобразует это значение или не указано другое значение посредством установки свойства Secured Cell Value в строке подключения.

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

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

  • Безопасность на уровне ячейки не может расширить права, которые были ограничены на более высоком уровне. Пример: если роль запрещает доступ к данным измерения, безопасность на уровне ячейки не может переопределить заданное множество. Другой пример: рассмотрим роль с разрешением на Чтение в кубе и с разрешением на Чтение и запись в ячейке — у данных ячейки не будет разрешения на Чтение и запись; у них будет разрешение на Чтение.

  • Пользовательские разрешения часто необходимо согласовывать между элементами измерения и ячейками в рамках единой роли. Предположим, например, что вы хотите запретить доступ к нескольким мерам, касающимся скидок, для разных комбинаций посредников. Используя данные измерения Торговые посредники и меру Сумма скидки , нужно сочетать в рамках одной и той же роли разрешения и для меры (с помощью инструкций, приведенных в этом разделе), и для членов измерения. Дополнительные сведения о настройке разрешений измерения см. в статье Предоставление пользовательского доступа к данным измерения (службы Analysis Services).

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

Предоставление доступа к специальным мерам

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

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

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

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

  3. Введите следующее многомерное выражение.

    (Measures.CurrentMember IS [Measures].[Reseller Sales Amount]) OR (Measures.CurrentMember IS [Measures].[Reseller Total Product Cost])  
    

    Данное выражение точно определяет, какие меры видны пользователям. Никакие другие меры не будут доступны пользователям, подключенным посредством данной роли. Обратите внимание, что CurrentMember (многомерные выражения) задает контекст, за которым следует разрешенная мера. Это выражение действует так: если текущий элемент содержит меру Объем продаж торгового посредника или Совокупная стоимость продуктов торгового посредника, значение отображается. В противном случае - ограничение доступа. Выражение состоит из нескольких частей, каждая часть заключена в скобки. Оператор OR используется для определения нескольких мер.

Отказ в доступе к специальным мерам

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

(NOT Measures.CurrentMember IS [Measures].[Discount Amount]) AND (NOT Measures.CurrentMember IS [Measures].[Discount Percentage])  

В Excel, безопасность ячеек раскрывается на следующей иллюстрации:

Столбцы Excel, в которых ячейки отображаются как недоступные

Настройка разрешений на чтение на вычисляемых мерах

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

Для того, чтобы понять, как Разрешения на чтение работают для вычисляемых мер, рассмотрим Валовую Прибыль Посредника в AdventureWorks. Она выводится из мер Объема Товарооборота Посредника и Общей Стоимости Товаров Посредника . Поскольку роль обладает Разрешением на чтение ячеек Валовой Прибыли Посредника , данная мера является видимой даже если разрешения на других мерах прямо запрещены. В качестве демонстрации скопируйте следующее многомерное выражение в раздел Созданиеданных | ячейки роли | Разрешить чтение содержимого куба.

(NOT Measures.CurrentMember IS [Measures].[Reseller Sales Amount])  
AND (NOT Measures.CurrentMember IS [Measures].[Reseller Total Product Cost])  

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

Таблица Excel с доступными и недоступными ячейками

Настройка разрешений Производного Чтение на вычисляемых мерах

Безопасность ячеек предлагает альтернативу, Производное Чтение, для настройки разрешений на соответствующих ячейках, участвующих в вычислении. Снова рассмотрим пример Валовая Прибыль Посредника . Когда вы вводите то же многомерное выражение, предоставленное в предыдущем разделе, на этот раз помещается во вторую область текста диалогового окна Созданиеячейкироли | (в текстовой области ниже Разрешить чтение содержимого ячейки в зависимости от безопасности ячейки), результат становится очевидным при просмотре в Excel. Поскольку Валовая Прибыль Посредника обусловлена Объемом Товарооборота Посредника и Общей Стоимостью Товаров Посредника, валовая прибыль в настоящее время недоступна, поскольку недоступны ее составные части.

Примечание

Что произойдет, если вы установите в ячейке и разрешения Чтения и разрешения Производного Чтения в рамках единой роли? Роль предоставит в ячейке разрешения Чтения, а не разрешения Производного Чтения.

Как следует из предыдущих разделов, выбор только лишь флажка Включить разрешения на производное чтение , без предоставления любого многомерного выражения, запретит доступ ко всем ячейкам в кубе. Это связано с тем, что допустимый набор по умолчанию является пустым, когда SQL Server Analysis Services разрешает подмножество ячеек куба.

Установка разрешений Чтение/Запись в ячейке

Разрешения Чтение/запись в ячейке используются для разрешения обратной записи только в том случае, если элементы имеют разрешения чтение/запись на самом кубе. Разрешения, предоставляемые на уровне ячеек, не могут превосходить прав, предоставленных на уровне куба. Дополнительные сведения см. в разделе Set Partition Writeback .

См. также:

Конструктор многомерных выражений (службы Analysis Services - Многомерные Данные)
Базовый скрипт многомерных выражений (многомерные выражения)
Предоставление разрешений доступа (службы Analysis Services)
Предоставление разрешений измерению (службы Analysis Services
Предоставление настраиваемого доступа к данным измерений (Analysis Services)
Предоставление разрешений кубу или модели (службы Analysis Services)