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


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

Изменения: 12 декабря 2006 г.

После предоставления роли базы данных в Microsoft SQL Server 2005 Analysis Services (SSAS) разрешений на чтение или чтение и запись в кубе ее члены могут просматривать данные во всех ячейках. Чтобы ограничить доступ к отдельным ячейкам, необходимо специально запретить к ним доступ. Чтобы ограничить доступ к отдельным элементам измерения, см. раздел Предоставление специального доступа к данным ячеек.

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

Рекомендации по установке разрешений

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

  • При предоставлении прав на производные ячейки необходимо проявлять осторожность
    Производная ячейка получает данные из других ячеек. Если роль базы данных имеет разрешение на производную ячейку, но не на ячейки, из которых эта производная ячейка получает свои значения, то участник этой роли базы данных может предположить значения ячеек, к которым он не имеет доступа. Например, роль базы данных имеет разрешение на ячейки мер Выручка и Прибыль (то есть эти меры видимы для этой роли базы данных), но эта роль не имеет разрешение на ячейки меры Себестоимость. Участник этой роли базы данных может определить значения меры Себестоимость путем вычитания значений меры Прибыль из значений меры Выручка.
  • Разрешения на данные ячеек не могут быть большими, чем разрешения на куб
    Права, предоставляемые на конкретные ячейки, не могут превосходить права, предоставляемые роли базы данных на куб целиком. Например, роль базы данных имеет разрешение на чтение и запись ячейки, но эта же роль базы данных имеет только разрешение чтения на куб. Разрешения на данные ячейки будут не на чтение и запись, а только на чтение.
  • Доступ к данным ячеек не предоставляет доступа к данным измерения
    Несмотря на то, что роль базы данных может иметь доступ к данным ячеек, эта роль не будет иметь доступ к данным измерения, если только роли не предоставлены отдельно разрешения на чтение или на чтение и запись данных измерения. Доступ к данным куба может ограничивать доступ к атрибутам измерений, к которым имеется доступ у роли базы данных, но не может расширять доступ к атрибутам измерений, к которым роль базы данных не имеет доступа.
  • Запрет на доступ к данным ячейки не приводит к скрытию этой ячейки от пользователя
    Права доступа к данным ячейки не контролируют, может ли роль базы данных видеть ячейку, но контролируют, может ли роль видеть содержимое ячейки. Если роль базы данных не имеет доступа к данным ячейки, то ячейка все равно видна в результатах запроса. Однако ячейка содержит значение #N/A вместо своего реального значения. Значение #N/A отображается в ячейке, если только клиентское приложение не преобразует это значение или не указано другое значение посредством установки свойства Secured Cell Value в строке соединения.

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

Установка разрешения на чтение данных ячеек

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

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

ms174847.note(ru-ru,SQL.90).gifПримечание.
Если роли базы данных предоставляется разрешение на чтение подмножества ячеек куба, но для этой роли не определено многомерное выражение, задающее эти ячейки, то для этой роли базы данных разрешение на чтение ни одной из ячеек в кубе не предоставляется. Причина этого заключается в том, что когда службы Analysis Services вычисляет подмножество ячеек куба, по умолчанию допустимый набор ячеек является пустым.

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

Предоставление роли базы данных доступа на чтение данных ячеек.

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

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

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

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

    Чтобы упростить построение многомерного выражения, нажмите кнопку обзора рядом с кнопкой Изменить MDX, а затем используйте выведенное на экран окно конструктора многомерных выражений для построения выражения.

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

Установка разрешения на производное чтение данных ячеек

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

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

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

ms174847.note(ru-ru,SQL.90).gifПримечание.
Если роль базы данных имеет права как на чтение, так и на производное чтение ячейки, то эта роль имеет разрешение на чтение ячейки.
ms174847.note(ru-ru,SQL.90).gifПримечание.
Если роли базы данных предоставляется разрешение на производное чтение подмножества ячеек куба, но для этой роли не определено многомерное выражение, задающее эти ячейки, то для этой роли базы данных разрешение на производное чтение ни одной из ячеек в кубе не предоставляется. Причина этого заключается в том, что когда службы Analysis Services вычисляет подмножество ячеек куба, по умолчанию допустимый набор ячеек является пустым.

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

Предоставление роли базы данных доступа на производное чтение данных ячеек.

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

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

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

    Чтобы упростить построение многомерного выражения, нажмите кнопку обзора рядом с кнопкой Изменить MDX, а затем используйте выведенное на экран окно конструктора многомерных выражений для построения выражения.

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

Установка разрешения на чтение и запись данных ячеек

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

ms174847.note(ru-ru,SQL.90).gifПримечание.
Если роли базы данных предоставляется разрешение на чтение и запись подмножества ячеек куба, но для этой роли не определено многомерное выражение, задающее эти ячейки, то для этой роли базы данных разрешение на чтение и запись ни одной из ячеек в кубе не предоставляется. Причина этого заключается в том, что когда службы Analysis Services вычисляет подмножество ячеек куба, по умолчанию допустимый набор ячеек является пустым.

Чтобы предоставить или запретить роли базы данных доступ к отдельным ячейкам, пользователь должен быть членом серверной роли служб Analysis Services или членом роли базы данных служб Analysis Services, имеющей разрешения «Полный доступ» (Администратора).

Предоставление роли базы данных доступа на чтение и запись данных ячеек.

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

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

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

    Чтобы упростить построение многомерного выражения, нажмите кнопку обзора рядом с кнопкой Изменить MDX, а затем используйте выведенное на экран окно конструктора многомерных выражений для построения выражения.

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

См. также

Задачи

Предоставление доступа к измерениям
Предоставление пользовательского доступа к данным измерения
Предоставление доступа к структурам и моделям интеллектуального анализа данных
Предоставление доступа к источникам данных

Основные понятия

Предоставление доступа к кубу

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

12 декабря 2006 г.

Измененное содержимое
  • Разъяснена архитектура безопасности, принятая по умолчанию.