Conceder acceso personalizado a los datos de dimensiones (Analysis Services)

Después de habilitar el acceso de lectura en un cubo, puede establecer permisos adicionales que permitan o denieguen de forma explícita el acceso a miembros de dimensión (incluidas las medidas de la Dimensión de medidas que contiene todas las medidas que se usan en un cubo). Por ejemplo, en varias categorías de distribuidores, puede que desee establecer permisos para excluir los datos de un determinado tipo de negocio. En la siguiente ilustración se muestra un efecto del antes y el después de la denegación de acceso al tipo de negocio Almacén en la dimensión Distribuidor.

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

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

Puede restringir el acceso eligiendo los miembros a los que quiere permitir (AllowedSet) o denegar el acceso (DeniedSet). Para ello, seleccione o deseleccione los miembros de dimensión que incluirá o excluirá del rol.

La seguridad básica de dimensiones es la más sencilla: solo tiene que seleccionar los atributos de dimensión y las jerarquías de atributo que incluirá o excluirá en el rol. La seguridad avanzada es más compleja y requiere conocimientos de scripting MDX. Ambos enfoques se describen a continuación.

Requisitos previos

No todas las medidas o miembros de dimensión se pueden usar en escenarios de acceso personalizados. Si hay un rol que restringe el acceso a una medida o miembro predeterminado o a medidas que forman parte de expresiones de medida, se producirá un error en la conexión.

Busque 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 secundario en un cubo y seleccione Incluir cubo como | ALTER To | Nueva ventana del Editor de consultas.

  2. Busque DefaultMeasure. Debería encontrar una para el cubo y una para cada perspectiva. Al definir la seguridad de dimensiones, 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 que suele incluir otras medidas. Compruebe que la medida que quiere restringir no se usa en una expresión. También puede seguir adelante y restringir el acceso, siempre que se asegure de excluir todas las referencias a esa medida en el cubo.

  4. Por último, busque DefaultMember. Tome nota de cualquier atributo que sirva como miembro predeterminado de un atributo. Evite colocar restricciones en esos atributos a la hora de configurar la seguridad de dimensiones.

Seguridad básica de dimensiones

  1. En SQL Server Management Studio, conéctese a la instancia de Analysis Services, expanda Roles para la base de datos correspondiente en Explorador de objetos y, después, haga clic en un rol de base de datos (o cree un nuevo rol de base de datos).

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

  2. En Datos de dimensiones | Básico, seleccione la dimensión en la que está estableciendo los permisos.

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

  4. Elija los miembros a los que permitirá o denegará el acceso. La opción de permitir el acceso es el valor predeterminado mediante Seleccionar todos los miembros. Le recomendamos que conserve este valor predeterminado y que borre los miembros individuales que no deben aparecer en las cuentas de grupos y usuarios de Windows en el panel Pertenencia mediante este rol. La ventaja radica en que los nuevos miembros que se han agregado en las futuras operaciones de procesamiento estarán disponibles automáticamente para las personas que se conecten mediante este rol.

    También puede Anular la selección de todos los miembros para revocar el acceso en general y seleccionar los miembros a los que se permitirá el acceso. En las futuras operaciones de procesamiento, los miembros nuevos no aparecerán hasta que edite manualmente la seguridad de los datos de dimensión para permitirles el acceso.

  5. De forma opcional puede hacer clic en Avanzado para habilitar los Totales visuales para esta jerarquía de atributo. Esta opción recalcula las agregaciones en función de los miembros disponibles a través del rol.

    [!NOTA]

    Al aplicar los permisos que recortan los miembros de dimensión, los totales agregados no se recalculan automáticamente. Supongamos que el miembroTodos de una jerarquía de atributo devuelve un recuento de 200 antes de que se apliquen los permisos. Tras aplicar los permisos que deniegan el acceso a algunos de los miembros, Todos todavía devuelve 200, aunque los valores de los miembros visibles para el usuario son inferiores. Para evitar la confusión entre los consumidores del cubo puede configurar el miembroTodos para que sea el agregado de los miembros, en lugar de ser el agregado de todos los miembros de la jerarquía de atributo. Para invocar este comportamiento puede habilitar Visual Totals en la pestaña Avanzado al configurar la seguridad de dimensiones. Una vez habilitado, el agregado se calcula en tiempo de consulta en lugar de recuperarse a partir de agregados previamente calculados. Esto puede tener un efecto perceptible en el rendimiento de las consultas, por lo que solo debe usarlo cuando sea necesario.

Ocultar las medidas

En Conceder acceso personalizado a los datos de las celdas (Analysis Services) se explica que, para ocultar completamente todos los aspectos visuales de una medida, y no sólo sus datos de celdas, se necesitan permisos de los miembros de dimensión. En esta sección se explica cómo denegar el acceso a los metadatos de objeto de una medida.

  1. En Datos de dimensiones | Básico, desplácese hacia abajo en la lista Dimensiones hasta que llegue a las dimensiones de cubo; a continuación, seleccione Dimensión de medidas.

  2. En la lista de medidas, desactive la casilla de medidas, que no debe aparecer para los usuarios que se conectan mediante este rol.

[!NOTA]

Consulte los requisitos previos para saber cómo identificar medidas que pueden romper la seguridad del rol.

Seguridad avanzada de dimensiones

Si tiene conocimientos de MDX, otro enfoque consistiría en escribir expresiones MDX que establezcan los criterios a los que los miembros tienen permitido o denegado el acceso. Haga clic en Crear rol | Datos de dimensiones | Avanzado para indicar el script.

Puede usar el Generador MDX para escribir la instrucción MDX. Para obtener información detallada, vea Cuadro de diálogo Generador MDX (Analysis Services - Datos multidimensionales). La pestaña Avanzada presenta las siguientes opciones:

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

  • Conjunto de miembros permitido
    La propiedad AllowedSet puede tener como resultado ningún miembro (valor predeterminado), todos los miembros o 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 acceso a un atributo y define un conjunto específico de miembros de atributos, solo estarán visibles los miembros permitidos explícitamente.

    Si crea la propiedad AllowedSet se producirá un efecto dominó cuando el atributo participe en una jerarquía de varios niveles. Por ejemplo, imaginémonos un rol que permite el acceso al estado de Washington (partiendo del supuesto de 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 incluyen antecesores (Estados Unidos) o descendientes (Seattle y Redmond) sólo verán a los miembros en una cadena que incluye el estado de Washington. Ya que el resto de los estados no están expresamente permitidos, el efecto será el mismo que si se les deniega el acceso.

    [!NOTA]

    Si define un conjunto vacío ({}) de miembros del atributo, ningún miembro del atributo estará 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 denegado
    La propiedad DeniedSet puede tener como resultado ningún miembro, todos los miembros (valor predeterminado) o algunos miembros de atributo. Si el conjunto denegado solamente contiene un conjunto específico de miembros del atributo, se deniega al rol de base de datos el acceso únicamente a dichos miembros específicos, así como a los descendientes si el atributo se encuentra en una jerarquía de varios niveles. Imaginémonos el ejemplo de la división de ventas del estado de Washington. Si Washington se encuentra en DeniedSet, las personas que se conecten con este rol verán el resto de los estados menos Washington y sus atributos descendientes.

    Recuerde que, como se indica en la sección anterior, el conjunto denegado es una colección fija. Si el procesamiento introduce posteriormente nuevos miembros a los que también se les debe denegar el acceso, deberá editar este rol para agregar dichos miembros a la lista.

  • Miembro predeterminado
    La propiedad DefaultMember establece el conjunto de datos que se devuelve a un cliente cuando un atributo no se incluye explícitamente en una consulta. Cuando el atributo no se incluye explícitamente, Analysis Services utiliza 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 utiliza este miembro predeterminado.

    • Si el rol de base de datos no define un miembro predeterminado para el atributo, Analysis Services utiliza el miembro predeterminado que se define para el atributo en sí. El miembro predeterminado para un atributo, a menos que se especifique lo contrario, es el miembro All (excepto si el atributo se define como no agregable).

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

  • Habilitar total visual
    La propiedad VisualTotals indica si los valores de celdas agregados que se muestran se calculan en función de todos los valores de celda o únicamente en función de los valores de celda que están visibles para el rol de base de datos.

    De manera 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 vez de tener que dedicar tiempo a seleccionar qué valores de celda calcular.

    No obstante, si la propiedad VisualTotals está deshabilitada, se podría producir un problema de seguridad si un usuario puede utilizar los valores de celdas agregados para deducir los valores para miembros de atributos a los que no tiene acceso el rol de base de datos del usuario. Por ejemplo, Analysis Services utiliza los valores para tres miembros del atributo a fin de calcular un valor de celdas agregado. El rol de base de datos puede ver dos de estos tres miembros de atributo. Usando el valor de celdas agregado, un miembro de este rol de base de datos podría deducir el valor para el tercer miembro del atributo.

    Si define la propiedad VisualTotals en True se puede eliminar el riesgo. Si habilita la propiedad VisualTotals, un rol de base de datos solamente puede ver totales agregados para los miembros de dimensión para los que tiene permiso el rol.

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

Vea también

Tasks

Conceder permisos a estructuras y modelos de minería de datos

Conceder permisos en un objeto de origen de datos (Analysis Services)

Conceptos

Conceder permisos de modelo o de cubo (Analysis Services)

Conceder acceso personalizado a los datos de las celdas (Analysis Services)