Предоставление пользовательского доступа к данным измерения
После того, как роли базы данных служб Microsoft Службы SQL Server 2005 Analysis Services (SSAS) предоставлены разрешения на чтение или запись и чтение в измерение куба, можно определить безопасность для каждого элемента атрибута измерения (она также называется безопасностью измерения). По умолчанию роль базы данных имеет доступ ко всем элементам всех атрибутов измерения в том кубе, к которому они имеют доступ для чтения. Можно определить конкретный набор элементов атрибута для каждого атрибута измерения, к которым члены роли имеют заданные права доступа (AllowedSet) или к которым доступ специально запрещен (DeniedSet). Можно также определить для каждой иерархии атрибутов элемент по умолчанию. Обычно это элемент «Все». Если конкретным элементам атрибута запрещен доступ на чтение, то лучше определить элемент «Все» как статистическое выражение, содержащее не полный список элементов иерархии атрибута, а только те элементы, к которым члены роли имеют доступ. Для этого следует включить режим VisualTotals. Тогда во время выполнения запроса будет вычисляться статистическое выражение, а не получаться заранее вычисленное значение.
![]() |
---|
Тип доступа, разрешенный членам роли измерения, зависит от предоставленного типа доступа измерения (чтение или запись и запись). |
Основные сведения о свойстве IsAllowed
Свойство IsAllowed определяет возможность доступа роли базы данных к элементам атрибута. По умолчанию роль базы данных, обладающая доступом к измерению, не может получить доступ к иерархиям атрибутов.
Основные сведения о свойстве AllowedSet
Свойство AllowedSet использует многомерное выражение для определения элементов атрибута, которые роль базы данных может просмотреть (допустимый набор). Допустимый набор может не включать элементы атрибута (по умолчанию), а также включать все или некоторые элементы. Если при предоставлении доступа к атрибуту не определяются никакие элементы допустимого набора, то будет разрешен доступ ко всем элементам. Если при предоставлении доступа к атрибуту определяется конкретный набор элементов атрибута, то отображаться будут только разрешенные элементы. При указании определенного допустимого набора может быть ограничена видимость элементов атрибута, добавленных после определения допустимого набора.
Ограничение допустимого набора для одного атрибута влияет на видимость других атрибутов. Предположим, что допустимый набор для атрибута Customer включает в себя только некоторые элементы атрибута, но допустимый набор для атрибута City включает в себя все элементы атрибута. В таком случае единственными видимыми элементами атрибута City будут города с клиентами в допустимом наборе атрибута Customer. При существовании города без клиентов элементы атрибута для такого города отображаться не будут. Другими словами, элемент атрибута видим только в том случае, если данный элемент атрибута существует хотя бы с одним элементом допустимого набора.
![]() |
---|
При определении пустого набора элементов атрибута ни один из элементов атрибута не будет видим для роли базы данных. Отсутствие допустимого набора не трактуется как пустой набор. |
Основные сведения о свойстве DeniedSet
Свойство DeniedSet использует многомерное выражение для определения элементов атрибута, доступ к которым со стороны роли базы данных запрещен явным образом (запрещенный набор). Запрещенный набор может не включать элементы атрибута, а также включать все (по умолчанию) или некоторые элементы. По умолчанию запрещенный набор не определяется.
В том случае, если запрещенный набор содержит только конкретный набор элементов атрибута, роли базы данных будет запрещен доступ только к таким конкретным элементам. Задание определенного запрещенного набора может повлиять на доступность элементов атрибута, добавляемых после задания запрещенного набора.
Если в запрещенном наборе задается конкретный набор атрибутов, то воздействие такого запрещенного набора на доступность других атрибутов будет зависеть от того, включено ли свойство ApplyDenied или нет. Например, предположим, существует запрещенный набор в атрибуте State, при этом свойство ApplyDenied включено. В данном случае у роли базы данных не будет возможности получить доступ к любым атрибутам Customer таких штатов в рамках запрещенного набора.
Основные сведения о свойстве ApplyDenied
Свойство ApplyDenied указывает на использование элементов запрещенного набора при определении видимости элементов иерархии атрибутов для роли базы данных. По умолчанию для каждой иерархии атрибутов свойству ApplyDenied задается значение True (включено).
![]() |
---|
В отличие от запрещенного набора, действие которого зависит от свойства ApplyDenied, допустимый набор всегда применяется при определении видимости элементов иерархии атрибутов для роли базы данных. |
Если включено свойство ApplyDenied и есть запрещенный набор, то у роли базы данных не будет возможности получить доступ к любым элементам иерархии атрибутов, если такая иерархия содержит любые из элементов запрещенного набора. Например, включено свойство ApplyDenied, при этом запрещенный набор состоит из штатов в атрибуте State. Кроме невозможности получить доступ к атрибуту State у базы данных не будет и возможности получить доступ к атрибуту Customers для любого штата в рамках запрещенного набора.
Если отключено свойство ApplyDenied и есть запрещенный набор, то у роли базы данных будет возможность получить доступ к любым элементам иерархии атрибутов, даже если такая иерархия содержит любые из элементов запрещенного набора. Например, отключено свойство ApplyDenied, при этом запрещенный набор состоит из штатов в атрибуте State. Хотя у роли базы данных не будет возможности получить доступ к атрибуту State, у нее сохранится возможность доступа к атрибуту Customers для любого штата в рамках запрещенного набора.
Основные сведения о свойстве VisualTotals
Свойство VisualTotals указывает на то, вычисляются ли отображаемые статистические значения ячеек в соответствии со всеми значениями ячеек или только в соответствии со значениями ячеек, видимых роли базы данных.
По умолчанию свойство VisualTotals отключено (установлено значение False). Указанный параметр по умолчанию позволяет добиться максимальной производительности, потому что службы Службы Analysis Services могут быстро вычислить сумму всех значений ячеек, не тратя время на выбор значений ячеек для включения в вычисление.
Однако отключение свойства VisualTotals может оказать отрицательное влияние на безопасность, если пользователь может воспользоваться статистическими значениями ячеек для вывода значений элементов атрибута, к которым роль базы данных пользователя не имеет доступа. Например, службы Службы Analysis Services используют значения трех элементов атрибута для вычисления статистического значения ячейки. У роли базы данных есть доступ к просмотру двух из указанных трех элементов атрибута. Используя статистическое значение ячейки, член данной роли базы данных сможет вывести значение третьего элемента атрибута.
Если пользователь может вывести значения элементов атрибута, к которым у пользовательской роли базы данных нет доступа, то в целях безопасности рекомендуется включить (установить значение True) свойство VisualTotals атрибута. Если свойство VisualTotals включено, то роль базы данных может просматривать только суммарные итоги по элементам измерения, для работы с которыми роли предоставлено разрешение. Например, включение свойства VisualTotals означает, что роли базы данных будет виден суммарный итог, включающий в себя только те штаты (то есть элементы атрибута State), которые видны для роли. В состав суммарного итога не входят значения всех штатов.
Основные сведения о свойстве DefaultMember
Свойство DefaultMember определяет набор данных, возвращаемый клиенту в том случае, если атрибут не включается явным образом в запрос. Если атрибут не включается явным образом, то службы Службы Analysis Services используют для атрибута один из следующих элементов по умолчанию.
Если роль базы данных определяет для атрибута элемент по умолчанию, то службы Службы Analysis Services используют данный элемент по умолчанию.
Если роль базы данных не определяет для атрибута элемент по умолчанию, то службы Службы Analysis Services используют элемент по умолчанию, заданный для самого атрибута. Элемент по умолчанию для атрибута, если не указывается иное, является элементом All (если только атрибут не определяется как не включаемый в статистическое вычисление).
Например, роль базы данных указывает Male в качестве элемента по умолчанию для атрибута Gender. Если только в запросе явно не включен атрибут Gender и не указан другой элемент для такого атрибута, то службы Службы Analysis Services вернут набор данных, включающий в себя только клиентов мужского пола. Дополнительные сведения о задании членов по умолчанию см. в разделе Определение элемента по умолчанию.
Установка разрешений на доступ к элементу измерения
До установки разрешений на доступ к элементу в измерении может возникнуть необходимость изучить некоторые примеры того, как различные настройки доступа влияют на результирующий набор, возвращаемый при опросе элементов. В следующих подразделах представлены примеры настроек.
Пример 3. Использование функции Except для исключения элементов из запрещенного набора
Пример 4. Использование функции Exists для исключения элементов из запрещенного набора
Пример 5. Использование функции Exists для задания разрешенного набора
Пример 6. Использование функций Exists и Except для установки допустимых и запрещенных наборов
После изучения особенностей различных разрешений доступа можно перейти к предоставлению указанных разрешений. Чтобы предоставить разрешения на доступ к элементу измерения, пользователь должен быть включен в роль сервера служб Службы Analysis Services или в роль базы данных служб Службы Analysis Services, которые обладают разрешением «Полный доступ» (администратор).
Если для предоставления разрешений на доступ к элементу измерения используется среда Business Intelligence Development Studio, то необходимо использовать специальные параметры на вкладке Основные вкладки Доступ к данным измерения или используйте расширенные параметры на вкладке Дополнительно.
![]() |
---|
Если пользователь или группа Microsoft Windows принадлежит к нескольким ролям базы данных, то действительные разрешения для пользователя или группы аддитивны в рамках всех ролей базы данных (объединение разрешений). Если одна роль запрещает пользователю доступ к элементу атрибута, а другая роль базы данных такой доступ пользователю предоставила, то у пользователя будет доступ к указанному элементу атрибута. |
Использование вкладки «Основные» для предоставления роли базы данных доступа к элементу в измерении
В среде Среда SQL Server Management Studio подключитесь к экземпляру служб Службы Analysis Services, разверните узел Роли для соответствующей базы данных в обозревателе объектов, а затем щелкните роль базы данных (или создайте новую).
Выберите параметр Доступ к пользовательским данным измерения в области Выбор страницы, выберите измерение из списка Измерение, а затем установите флажок Разрешить атрибут на вкладке Дополнительно.
Выбор этого параметра задает свойству IsAllowed значение True.
В списке Атрибут выберите атрибут, для которого необходимо задать элементы, просмотр которых будет разрешен ролям базы данных.
Чтобы отдельно запретить доступ к определенным элементам атрибута, задайте для них многомерное выражение в поле Запрещенный набор элементов. Просмотр всех остальных элементов атрибута будет разрешен.
- Чтобы отдельно предоставить доступ к определенным элементам атрибута, задайте для них многомерное выражение в поле Разрешенный набор элементов. Просмотр всех остальных элементов атрибута будет запрещен.
Использование вкладки «Дополнительно» для предоставления роли базы данных доступа к элементу в измерении
В среде Среда SQL Server Management Studio подключитесь к экземпляру служб Службы Analysis Services, разверните узел Роли для соответствующей базы данных в обозревателе объектов, а затем щелкните роль базы данных (или создайте новую).
Выберите параметр Доступ к пользовательским данным измерения в области Выбор страницы, выберите измерение из списка Измерение, а затем установите флажок Разрешить атрибут на вкладке Дополнительно.
Выбор этого параметра задает свойству IsAllowed значение True.
В списке Атрибут выберите атрибут, для которого необходимо задать элементы, просмотр которых будет разрешен ролям базы данных.
Чтобы отдельно запретить доступ к определенным элементам атрибута, задайте для них многомерное выражение в поле Запрещенный набор элементов. Просмотр всех остальных элементов атрибута будет разрешен.
Чтобы отдельно предоставить доступ к определенным элементам атрибута, задайте для них многомерное выражение в поле Разрешенный набор элементов. Просмотр всех остальных элементов атрибута будет запрещен.