Share via


Conceder acceso personalizado a datos de dimensión

Una vez que una función de base de datos de Microsoft SQL Server 2005 Analysis Services (SSAS) tiene permiso de lectura o lectura/escritura para las dimensiones de un cubo, puede definir la seguridad en cada miembro de atributo de dimensión (que también recibe el nombre de seguridad de dimensión). De forma predeterminada, una función de base de datos tiene acceso a todos los miembros de todos los atributos de dimensión de un cubo para los que tiene acceso de lectura. Puede definir un conjunto específico de miembros de atributos para cada atributo de dimensión en el que los miembros de la función tengan derechos de acceso específicos (AllowedSet) o en el que tengan específicamente denegados derechos de acceso (DeniedSet). También puede definir el miembro predeterminado para cada jerarquía de atributos; de forma predeterminada, el miembro All es el miembro predeterminado. Si deniega permisos de lectura a determinados miembros de atributos, es posible que desee que el valor para el miembro All sea el agregado de los miembros a los que tienen acceso los miembros de la función en lugar del agregado de todos los miembros de la jerarquía de atributos. Para especificar este comportamiento, es necesario habilitar VisualTotals. Al habilitar VisualTotals, el agregado se calcula en tiempo de consulta en lugar de recuperarse a partir de agregados previamente calculados.

Nota

El tipo de acceso que tienen los miembros de una función de dimensión se basa en el acceso concedido a la dimensión, es decir, lectura o lectura/escritura.

Descripción de la propiedad IsAllowed

La propiedad IsAllowed establece si la función de base de datos puede obtener acceso a miembros de atributos. De manera predeterminada, una función de base de datos que tiene acceso a una dimensión, no puede tener acceso a las jerarquías de atributo.

Descripción de la propiedad AllowedSet

La propiedad AllowedSet utiliza una expresión MDX (expresiones multidimensionales) para establecer los miembros de atributos que puede ver la función de base de datos (el conjunto permitido). El conjunto permitido puede incluir ningún miembro (opción predeterminada), todos o algunos miembros de atributos. 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, sólo estarán visibles los miembros permitidos específicamente. La definición específica de un conjunto permitido puede limitar la visibilidad de los miembros de atributos agregados después de la definición del conjunto permitido.

La limitación del conjunto permitido para un atributo afecta a la visibilidad de otros atributos. Por ejemplo, supongamos que el conjunto permitido para el atributo Customer sólo incluye algunos miembros del atributo y el conjunto permitido para el atributo City incluye todos los miembros del atributo. En este caso, los únicos miembros del atributo City que estarán visibles serán aquellas ciudades que tengan clientes en el conjunto permitido del atributo Customer. Si una ciudad no tiene clientes, los miembros del atributo de dicha ciudad no estarán visibles. Dicho de otro modo, un miembro del atributo sólo puede estar visible si dicho miembro del atributo existe con un miembro del conjunto permitido como mínimo.

Nota

Si define un conjunto vacío de miembros del atributo, ningún miembro del atributo estará visible para la función de base de datos. La ausencia de un conjunto permitido no se interpreta como un conjunto vacío.

Descripción de la propiedad DeniedSet

La propiedad DeniedSet utiliza una expresión MDX para establecer los miembros del atributo a los que una función de base de datos tiene denegado explícitamente el acceso (el conjunto denegado). El conjunto denegado puede incluir ningún miembro, todos (opción predeterminada) o algunos miembros del atributo. De manera predeterminada, no se define ningún conjunto denegado.

Si el conjunto denegado sólo contiene un conjunto específico de miembros del atributo, se deniega a la función de base de datos el acceso únicamente a dichos miembros específicos. La definición específica de un conjunto denegado puede afectar a la accesibilidad de los miembros del atributo que se agregan después de la definición del conjunto denegado.

Al definir un conjunto específico de atributos en el conjunto denegado, el efecto de este conjunto denegado sobre la accesibilidad de otros atributos depende de si la propiedad ApplyDenied está habilitada. Por ejemplo, supongamos que hay un conjunto denegado en el atributo State y la propiedad ApplyDenied está habilitada. En este caso, la función de base de datos no podrá tener acceso a ningún atributo Customer para los estados dentro del conjunto denegado.

Descripción de la propiedad ApplyDenied

La propiedad ApplyDenied indica si se utilizan los miembros de un conjunto denegado para determinar si los miembros de una jerarquía de atributos están visibles para la función de base de datos. De manera predeterminada, la propiedad ApplyDenied se establece en True (habilitada) para cada jerarquía de atributo.

Nota

A diferencia del conjunto denegado cuyo efecto depende de la propiedad ApplyDenied, el conjunto permitido siempre se aplica para determinar si los miembros de una jerarquía de atributos están visibles para la función de base de datos.

Si la propiedad ApplyDenied está habilitada y hay un conjunto denegado, la función de base de datos no podrá obtener acceso a ningún miembro de una jerarquía de atributos si dicha jerarquía contiene cualquiera de los miembros del conjunto denegado. Por ejemplo, la propiedad ApplyDenied está habilitada y el conjunto denegado está compuesto por estados en el atributo State. Además de no poder obtener acceso al atributo State, la función de base de datos no podrá obtener acceso al atributo Customers para ningún estado dentro del conjunto denegado.

Si la propiedad ApplyDenied está deshabilitada y hay un conjunto denegado, la función de base de datos podrá obtener acceso a cualquier miembro de una jerarquía de atributos incluso si dicha jerarquía contiene cualquiera de los miembros del conjunto denegado. Por ejemplo, la propiedad ApplyDenied está deshabilitada y el conjunto denegado está compuesto por estados en el atributo State. Aunque la función de base de datos no podrá obtener acceso al atributo State, la función de base de datos sí podrá obtener acceso al atributo Customers para cualquier estado dentro del conjunto denegado.

Descripción de la propiedad VisualTotals

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 la función 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 la función 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. La función de base de datos puede ver dos de estos tres miembros de atributo. Usando el valor de celdas agregado, un miembro de esta función de base de datos podría deducir el valor para el tercer miembro del atributo.

Si un usuario puede deducir los valores para los miembros del atributo a los que no tiene acceso la función de base de datos del usuario, por seguridad se recomienda que habilite (establezca en True) la propiedad VisualTotals para el atributo. Si habilita la propiedad VisualTotals, una función de base de datos sólo puede ver totales agregados para los miembros de dimensión para los que tiene permiso la función. Por ejemplo, al habilitar la propiedad VisualTotals, la función de base de datos verá un total agregado que incluye sólo los estados (es decir, los miembros del atributo State) que estén visibles para la función. El total agregado no incluirá los valores para todos los estados.

Descripción de la propiedad DefaultMember

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 la función de base de datos define un miembro predeterminado para el atributo, Analysis Services utiliza este miembro predeterminado.

  • Si la función 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, una función 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 sólo incluye a los clientes masculinos. Para obtener más información acerca de cómo establecer el miembro predeterminado, vea Definir un miembro predeterminado.

Establecer los permisos de acceso de un miembro en una dimensión

Antes de establecer los permisos de acceso de un miembro en una dimensión, es recomendable que revise algunos ejemplos del modo en que las distintas configuraciones de acceso afectan al conjunto de resultados que se devuelve al consultar los miembros. Los siguientes temas proporcionan estas configuraciones de ejemplo:

Una vez que comprenda cómo funcionan los distintos permisos de acceso, estará listo para conceder dichos permisos. Para conceder permisos de acceso a un miembro en una dimensión, un usuario debe ser miembro de la función de servidor de Analysis Services o de una función de base de datos de Analysis Services que tenga permisos de Control total (administrador).

Al utilizar Business Intelligence Development Studio para conceder permisos de acceso a un miembro de una dimensión, debe utilizar las opciones estándar de la ficha Básico de la ficha Acceso a datos de dimensión o las opciones más personalizadas de la ficha Avanzadas.

Nota importanteImportante

Si un usuario o grupo de Microsoft Windows pertenece a varias funciones de base de datos, los permisos efectivos para el usuario o grupo se suman en todas las funciones de base de datos (una unión de permisos). Si una función de base de datos deniega al usuario acceso a un miembro de atributo y otra función diferente concede al usuario acceso a dicho miembro de atributo, el usuario tendrá acceso al miembro de atributo.

Para utilizar la ficha Básico a fin de conceder a una función de base de datos acceso a un miembro de una dimensión

  1. En SQL Server Management Studio, conéctese a la instancia de Analysis Services, expanda Funciones para la base de datos correspondiente en Explorador de objetos y, después, haga clic en una función de base de datos (o cree una nueva función de base de datos).

  2. Haga clic en Acceso de datos personalizado de la dimensión en el panel Seleccionar una página, seleccione la dimensión en la lista Dimensión y, después, seleccione Atributo en la ficha Avanzadas.

    Al seleccionar esta opción, se establece la propiedad IsAllowed en True.

  3. En la lista Atributos, seleccione el atributo para el que desea especificar los miembros que deben estar visibles para la función de base de datos.

  4. Para denegar el acceso específicamente a ciertos miembros del atributo, escriba la expresión MDX para dichos miembros en el cuadro Conjunto de miembros denegado. Todos los demás miembros del atributo estarán visibles.

    • Para conceder acceso específicamente sólo a ciertos miembros, escriba la expresión MDX para dichos miembros en el cuadro Conjunto de miembros permitido. Ningún otro miembro del atributo estará visible.

Para utilizar la ficha Avanzadas a fin de conceder a una función de base de datos acceso a un miembro de una dimensión

  1. En SQL Server Management Studio, conéctese a la instancia de Analysis Services, expanda Funciones para la base de datos correspondiente en Explorador de objetos y, después, haga clic en una función de base de datos (o cree una nueva función de base de datos).

  2. Haga clic en Acceso de datos personalizado de la dimensión en el panel Seleccionar una página, seleccione la dimensión en la lista Dimensión y, después, seleccione Atributo en la ficha Avanzadas.

    Al seleccionar esta opción, se establece la propiedad IsAllowed en True.

  3. En la lista Atributos, seleccione el atributo para el que desea especificar los miembros que deben estar visibles para la función de base de datos.

  4. Para denegar el acceso específicamente a ciertos miembros del atributo, escriba la expresión MDX para dichos miembros en el cuadro Conjunto de miembros denegado. Todos los demás miembros del atributo estarán visibles.

    Para conceder acceso específicamente sólo a ciertos miembros, escriba la expresión MDX para dichos miembros en el cuadro Conjunto de miembros permitido. Ningún otro miembro del atributo estará visible.