Предоставление настраиваемого доступа к данным ячеек (службы Analysis Services)
Для разрешения или запрета доступа к данным меры в кубе используется безопасность ячеек. На следующем рисунке показано сочетание разрешенных и запрещенных мер в сводной таблице при подключении от имени пользователя, роль которого разрешает доступ только к определенным мерам. В этом примере используемой роли доступны только меры Объем продаж торгового посредника и Совокупная стоимость продуктов торгового посредника. Все остальные меры неявно запрещены (действия для получения такого результата описаны в следующем разделе — «Разрешение доступа к определенным мерам»).
Разрешения ячейки применяются к данным внутри этой ячейки, но не к ее метаданным. Обратите, что ячейка по-прежнему отображается в результатах запроса и отображает значение #N/A вместо фактического значения ячейки. Значение #N/A отображается в ячейке, если только клиентское приложение не преобразует это значение или не указано другое значение посредством установки свойства Secured Cell Value в строке подключения.
Чтобы полностью скрыть ячейку, нужно ограничить отображаемые элементы (измерения, атрибуты измерений и элементы атрибутов измерений). Дополнительные сведения см. в разделе Предоставление настраиваемого доступа к данным измерений (службы Analysis Services).
Будучи администратором, вы можете указать, какие разрешения у членов ролей есть в отношении ячеек куба: чтение, производное чтение или чтени�� и запись. Применение разрешений к ячейкам — это самый низкий из возможных уровней безопасности, поэтому перед применением разрешений на этом уровне необходимо учесть следующее:
Безопасность на уровня ячеек не может предоставлять более широкие права, если они ограничены на более высоком уровне. Пример: Если роль запрещает доступ к данным измерений, безопасность на уровне ячеек не может переопределить этот запрет. Еще пример: Рассмотрим роль с разрешением Чтение для куба и разрешением Чтение и запись для ячейки: разрешение на доступ к данным ячейки будет не Чтение и запись, а Чтение.
Настраиваемые разрешения часто нуждаются в координации между членами измерения и ячейками в рамках одной и той же роли. Например, предположим, что нужно запретить доступ к нескольким мерам, связанным со скидками, для различных сочетаний торговых посредников. Используя данные измерения Торговые посредники и меру Сумма скидки, нужно сочетать в рамках одной и той же роли разрешения и для меры (с помощью инструкций, приведенных в этом разделе), и для членов измерения. Дополнительные сведения о настройке разрешений измерений см. в разделе Предоставление настраиваемого доступа к данным измерений (службы Analysis Services).
Безопасность на уровне ячеек указывается с помощью выражений MDX. Ячейка представляет собой кортеж (возможную точку пересечения между несколькими измерениями и мерами), необходимо использовать MDX для назначения определенных ячеек.
Разрешение доступа к определенным мерам
Можно использовать безопасность ячеек, чтобы явным образом указать доступные ячейки. Если указать, какие элементы разрешены, все прочие меры становятся недоступными. Это, пожалуй, простейший сценарий для реализации с помощью сценария MDX, как показано ниже.
В среде SQL Server Management Studio подключитесь к экземпляру служб Службы Analysis Services, выберите базу данных, откройте папку Роли, затем выберите роль базы данных (или создайте новую). Членство уже должно быть указано, а у роли должен быть доступа Read к кубу. Для справки см. Предоставление разрешений для куба или модели (службы Analysis Services).
В области Данные ячейки проверьте правильность выбора куба, затем установите флажок Включить разрешения на чтение.
Если установить только этот флажок, но не предоставить выражение MDX, это действие будет равноценно запрету доступа ко всем ячейкам в кубе. Причина заключается в том, что разрешенный набор по умолчанию является пустым, когда Службы Analysis Services преобразует подмножество ячеек куба.
Введите следующее выражение MDX.
(Measures.CurrentMember IS [Measures].[Reseller Sales Amount]) OR (Measures.CurrentMember IS [Measures].[Reseller Total Product Cost])
Это выражение явным образом указывает, какие меры отображаются для пользователей. Все прочие меры не будут доступны для пользователей, подключающихся через эту роль. Обратите внимание, что CurrentMember (многомерные выражения) задает контекст, а затем следует разрешенная мера. Это выражение действует так: если текущий элемент содержит меру Объем продаж торгового посредника или Совокупная стоимость продуктов торгового посредника, значение отображается. В противном случае следует запретить доступ. Это выражение состоит из нескольких частей, каждая их которых заключена в скобки. Для указания нескольких мер используется оператор OR.
Запрет доступа к определенным мерам
Следующее выражение MDX, также указанное в окне Создать роль | Данные ячейки | Разрешить чтение содержимого куба, дает обратный эффект, делая некоторые меры недоступными. В этом примере Сумма скидки и Процент скидки сделаны недоступными с помощью операторов NOT и AND. Все остальные меры будут доступны для пользователей, подключающихся через эту роль.
(NOT Measures.CurrentMember IS [Measures].[Discount Amount]) AND (NOT Measures.CurrentMember IS [Measures].[Discount Percentage])
В Excel безопасность ячеек показана на следующем рисунке:
Настройка разрешений на чтение для вычисляемых мер
Разрешения для вычисляемой меры можно задать по отдельности для ее составных частей. Перейдите далее к разделу, посвященному разрешению на производное чтение, если нужно координировать разрешения между вычисляемой мерой и зависящими от нее мерами.
Чтобы понять, как работают разрешения на чтение для вычисляемой меры, рассмотрим значение Валовая прибыль торгового посредника в AdventureWorks. Это значение является производным от мер Объем продаж торговых посредников и Совокупная стоимость продуктов торговых посредников. Если у роли есть разрешение на чтение для ячеек Валовая прибыль торгового посредника, эта мера отображается, даже если доступ к другим ячейкам явным образом запрещен. Для примера скопируйте следующее выражение MDX в окно Создать роль | Данные ячейки | Разрешить чтение содержимого куба.
(NOT Measures.CurrentMember IS [Measures].[Reseller Sales Amount])
AND (NOT Measures.CurrentMember IS [Measures].[Reseller Total Product Cost])
В Excel подключитесь к кубу с помощью текущей роли и выберите все три меры, чтобы ознакомиться с действием безопасности ячеек. Обратите внимание, что меры в запрещенном наборе недоступны, но вычисляемая мера отображается для пользователя.
Настройка разрешений на производное чтение для вычисляемых мер
Безопасность ячейки предусматривает альтернативное разрешение «Производное чтение» для связанных ячеек, участвующих в вычислении. Снова рассмотрим меру Валовая прибыль торгового посредника. При вводе того же выражения MDX, предоставленного в предыдущем разделе, размещенного на этот раз во второй текстовой области диалогового окна Создать роль | Данные ячейки (в текстовой области под строкой Разрешить чтение содержимого ячейки в зависимости от уровня безопасности, установленного для ячейки), результат будет очевиден при просмотре в Excel. Значение Валовая прибыль торгового посредника зависит от значений Объем продаж торгового посредника и Совокупная стоимость продуктов торгового посредника. Значение валовой прибыли недоступно, поскольку недоступны ячейки, используемые для вычисления этого значения.
Примечание |
---|
Что произойдет, если в одной и той же роли назначить для ячейки разрешения «Чтение» и «Производное чтение»? Роль предоставит разрешения «Чтение», а не «Производное чтение». |
Вспомните по прежним разделам, что если установить флажок Включить разрешения на производное чтение, но не указать выражение MDX, будет запрещен доступ ко всем ячейкам куба. Причина заключается в том, что разрешенный набор по умолчанию является пустым, когда Службы Analysis Services преобразует подмножество ячеек куба.
Настройка разрешений на чтение и запись для ячейки
Разрешения на чтение и запись, заданные для ячейки, используются для поддержки обратной записи, если у членов есть разрешения на чтение и запись для всего куба. Разрешения, предоставляемые на уровне ячеек, не могут превосходить прав, предоставленных на уровне куба. Дополнительные сведения см. в разделе Настройка обратной записи секции.
См. также
Задания
Предоставление разрешений процессам (службы Analysis Services)
Предоставление разрешений для измерений (службы Analysis Services)
Предоставление настраиваемого доступа к данным измерений (службы Analysis Services)
Справочник
Диалоговое окно «Построитель многомерных выражений» (службы Analysis Services — многомерные данные)
Основные понятия
Базовый скрипт многомерных выражений (многомерные выражения)
Предоставление разрешений для куба или модели (службы Analysis Services)