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


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

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

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

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

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

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

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

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

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

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

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

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

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

ПримечаниеПримечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ПримечаниеПримечание

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

ПримечаниеПримечание

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

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

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

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

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

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

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

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

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

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

ПримечаниеПримечание

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

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

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

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

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

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

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

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