Compartir a través de


Concesión de acceso personalizado a datos de dimensión (Analysis Services)

Después de habilitar el acceso de lectura a un cubo, puede establecer permisos adicionales que permitan o denieguen explícitamente el acceso a los miembros de dimensión (incluidas las medidas ubicadas en la dimensión de Medidas, la cual contiene todas las medidas utilizadas en el cubo). Por ejemplo, dadas varias categorías de revendedores, es posible que desee establecer permisos para excluir datos de un tipo de negocio específico. La siguiente ilustración muestra un efecto antes y después de denegar el acceso al tipo de negocio de almacén en la dimensión de distribuidores.

Tablas dinámicas con y sin un miembro de dimensión

De forma predeterminada, si puede leer datos de un cubo de Analysis Services, automáticamente tiene permisos de lectura en todas las medidas y miembros de dimensión asociados a ese cubo. Aunque este comportamiento puede ser suficiente para muchos escenarios, a veces los requisitos de seguridad requieren una estrategia de autorización más segmentada, con distintos niveles de acceso para distintos usuarios, en la misma dimensión.

Para restringir el acceso, elija qué miembros permitir (AllowedSet) o denegar (DeniedSet) el acceso. Para ello, seleccione o deseleccione miembros de dimensión para incluir o excluir del rol.

La seguridad de dimensión básica es la más sencilla; Simplemente seleccione los atributos de dimensión y las jerarquías de atributos que se van a incluir o excluir en el rol. La seguridad avanzada es más compleja y requiere experiencia en scripting MDX. Ambos enfoques se describen a continuación.

Prerrequisitos

No todas las medidas o miembros de dimensión pueden usarse en escenarios de acceso personalizado. Se producirá un error en una conexión si un rol restringe el acceso a una medida o miembro predeterminado, o restringe el acceso a las medidas que forman parte de las expresiones de medida.

Compruebe si hay obstrucciones en la seguridad de dimensiones: medidas predeterminadas, miembros predeterminados y medidas usadas en expresiones de medida

  1. En SQL Server Management Studio, haga clic con el botón derecho en un cubo y seleccione Script Cube (Script Cube) como | ALTER ToNew Query Editor Window (Cambiar a | nueva ventana del Editor de consultas).

  2. Busque DefaultMeasure. Debe encontrar uno para el cubo y otro para cada perspectiva. Al definir la seguridad de dimensión, evite restringir el acceso a las medidas predeterminadas.

  3. A continuación, busque MeasureExpression. Una expresión de medida es una medida, basada en un cálculo, donde el cálculo suele incluir otras medidas. Compruebe que la medida que desea restringir no se usa en una expresión. Como alternativa, continúe y restrinja el acceso, solo tiene que asegurarse de excluir también todas las referencias a esa medida en todo el cubo.

  4. Por último, busque DefaultMember. Anote los atributos que actúan como miembro predeterminado de un atributo. Evite poner restricciones en esos atributos al configurar la seguridad de dimensión.

Seguridad de dimensión básica

  1. En SQL Server Management Studio, conéctese a la instancia de Analysis Services, expanda Roles para la base de datos adecuada en el Explorador de objetos y, a continuación, haga clic en un rol de base de datos (o cree un rol de base de datos).

    El rol ya debe tener acceso de lectura al cubo. Consulte Conceder permisos de cubo o modelo (Analysis Services) si necesita ayuda con este paso.

  2. En Dimension Data | Basic ,seleccione la dimensión para la que va a establecer permisos.

  3. Elija la jerarquía de atributos. No todos los atributos estarán disponibles. Solo los atributos que tienen AttributeHierarchyEnabled aparecen en la lista Jerarquía de atributos .

  4. Elija qué miembros permitir o denegar el acceso. Permitir el acceso, a través de la opción Seleccionar todos los miembros , es el valor predeterminado. Le sugerimos que mantenga este valor predeterminado y, a continuación, borre los miembros individuales que no deben ser visibles para las cuentas de usuario y grupo de Windows en el panel Pertenencias a través de este rol. La ventaja es que los nuevos miembros agregados en futuras operaciones de procesamiento están disponibles automáticamente para las personas que se conectan a través de este rol.

    Como alternativa, puede deseleccionar a todos los miembros para revocar el acceso general y, a continuación, elegir qué miembros autorizar. En futuras operaciones de procesamiento, los nuevos miembros no son visibles hasta que edite manualmente la seguridad de los datos de dimensión para permitir el acceso a ellos.

  5. Opcionalmente, haga clic en Opciones avanzadas para habilitar Visual Totals esta jerarquía de atributos. Esta opción vuelve a calcular las agregaciones en función de los miembros disponibles a través del rol.

    Nota:

    Al aplicar permisos que recortan los miembros de dimensión, los totales agregados no se vuelven a calcular automáticamente. Supongamos que el All miembro de una jerarquía de atributos devuelve un recuento de 200 antes de aplicar los permisos. Después de aplicar permisos que deniegan el acceso a algunos miembros, todavía devuelve 200, All aunque los valores de miembro visibles para el usuario sean mucho menos. Para evitar confundir a los consumidores del cubo, puede configurar el All miembro como el agregado de solo los miembros a los que pertenecen los roles, en lugar del agregado de todos los miembros de la jerarquía de atributos. Para invocar este comportamiento, puede habilitar Visual Totals en la pestaña Opciones avanzadas al configurar la seguridad de dimensión. Una vez habilitado, el agregado se calcula en tiempo de consulta en lugar de recuperarse de agregaciones calculadas previamente. Esto puede tener un efecto notable en el rendimiento de las consultas, por lo que úselo solo cuando sea necesario.

Ocultar medidas

En Conceder acceso personalizado a los datos de celda (Analysis Services), se explicó que ocultar completamente todos los aspectos visuales de una medida, y no solo sus datos de celda, requiere permisos sobre los miembros de las dimensiones. En esta sección se explica cómo denegar el acceso a los metadatos del objeto de una medida.

  1. En Dimension Data | Básico, desplácese hacia abajo en la lista de dimensiones hasta llegar a las dimensiones del Cubo y, a continuación, seleccione Dimensión de Medidas.

  2. En la lista de medidas, desactive la casilla de medidas que no deberían aparecer a los usuarios que se conectan a través de este rol.

Nota:

Compruebe los requisitos previos para obtener información sobre cómo identificar las medidas que pueden interrumpir la seguridad de los roles.

Seguridad de dimensión avanzada

Si tiene experiencia en MDX, otro enfoque consiste en escribir expresiones MDX que establezcan los criterios para los que se permite o deniega el acceso a los miembros. Haga clic en Crear rol | Datos de dimensión | Avanzado para proporcionar el script.

Puede usar el Generador MDX para escribir la instrucción MDX. Consulte MDX Builder (Analysis Services - Datos multidimensionales) para obtener más información. La pestaña Opciones avanzadas tiene las siguientes opciones:

Atributo
Seleccione el atributo para el que desea administrar la seguridad de los miembros.

Conjunto de miembros permitido
AllowedSet puede resultar en no incluir ningún miembro (valor predeterminado); incluir todos los miembros o incluir algunos miembros. Si permite el acceso a un atributo y no define ningún miembro del conjunto permitido, se concede acceso a todos los miembros. Si permite el acceso a un atributo y define un conjunto específico de miembros de atributo, solo los miembros permitidos explícitamente son visibles.

La creación de un AllowedSet tiene un efecto en cadena cuando el atributo participa en una jerarquía de varios niveles. Por ejemplo, supongamos que un rol permite el acceso al estado de Washington (supongamos un escenario en el que el rol concede permisos a la división de ventas del estado de Washington de una empresa). Para las personas que se conectan a través de este rol, las consultas que incluyan ancestros (Estados Unidos) o descendientes (Seattle y Redmond) solo mostrarán miembros en una cadena que incluya exclusivamente el estado de Washington. Dado que no se permiten explícitamente otros estados, el efecto será el mismo que si se denegaran.

Nota:

Si define un conjunto vacío ({}) de miembros de atributo, ningún miembro del atributo será visible para el rol de base de datos. La ausencia de un conjunto permitido no se interpreta como un conjunto vacío.

Conjunto de miembros rechazados
La propiedad DeniedSet puede resultar en ningún miembro, en todos los miembros (valor predeterminado) o en algunos de los miembros de atributo. Cuando el conjunto denegado contiene solo un conjunto específico de miembros de atributo, el rol de base de datos solo se deniega el acceso a esos miembros específicos, así como a los descendientes si el atributo está en una jerarquía de varios niveles. Considere el ejemplo de la división de ventas del estado de Washington. Si Washington se coloca en el DeniedSet, las personas que se conectan a través de este rol verán todos los demás estados excepto Washington y sus atributos descendientes.

Recuerde de la sección anterior que el conjunto denegado es una colección fija. Si el procesamiento introduce posteriormente nuevos miembros que también deben denegarse el acceso, deberá editar este rol para agregar esos miembros a la lista.

Miembro predeterminado
La propiedad DefaultMember determina el conjunto de datos devuelto a un cliente cuando un atributo no se incluye explícitamente en una consulta. Cuando el atributo no se incluye explícitamente, Analysis Services usa uno de los siguientes miembros predeterminados para el atributo :

  • Si el rol de base de datos define un miembro predeterminado para el atributo, Analysis Services usa este miembro predeterminado.

  • Si el rol de base de datos no define un miembro predeterminado para el atributo, Analysis Services usa el miembro predeterminado definido para el propio atributo. El miembro predeterminado de un atributo, a menos que especifique lo contrario, es el All miembro (a menos que el atributo se defina como no aggregatable).

Por ejemplo, supongamos que un rol de base de datos especifica Male como miembro predeterminado para el Gender atributo . A menos que una consulta incluya explícitamente el Gender atributo y especifique un miembro diferente para este atributo, Analysis Services devolvería un conjunto de datos que solo incluía clientes masculinos. Para obtener más información sobre cómo establecer el miembro predeterminado, vea Definir un miembro predeterminado.

Habilitar Visual Total
La propiedad VisualTotals indica si los valores de celda agregados que se muestran se calculan según todos los valores de celda o solo según los valores de celda visibles para el rol de base de datos.

De forma predeterminada, la propiedad VisualTotals está deshabilitada (establecida en False). Esta configuración predeterminada maximiza el rendimiento porque Analysis Services puede calcular rápidamente el total de todos los valores de celda, en lugar de tener que dedicar tiempo a seleccionar los valores de celda que se van a calcular.

Sin embargo, si la propiedad VisualTotals está deshabilitada, podría crear un problema de seguridad si un usuario puede usar los valores de celda agregados para deducir los valores de los miembros de atributo a los que el rol de base de datos del usuario no tiene acceso. Por ejemplo, Analysis Services usa los valores de tres miembros de atributo para calcular un valor de celda agregado. La función de base de datos tiene acceso para ver dos de estos tres miembros de atributo. Con el valor de celda agregado, un miembro de este rol de base de datos podría deducir el valor del tercer miembro del atributo.

Establecer la propiedad VisualTotals en True puede eliminar este riesgo. Al habilitar la propiedad VisualTotals, un rol de base de datos solo puede ver los totales agregados de los miembros de dimensión a los que el rol tiene permiso.

Comprobación
Haga clic para probar la sintaxis MDX definida en esta página.

Véase también

Otorgar permisos de cubo o modelo (Servicios de Análisis)
Concesión de acceso personalizado a los datos de celda (Analysis Services)
Concesión de permisos para estructuras y modelos de minería de datos (Analysis Services)
Concesión de permisos en un objeto de origen de datos (Analysis Services)