Compartir a través de


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

La seguridad de celda se usa para permitir o denegar el acceso a los datos de medida dentro de un cubo. En la siguiente ilustración se muestra una combinación de medidas permitidas y denegadas en una tabla dinámica, cuando se conecta como un usuario cuyo rol solo permite el acceso a determinadas medidas. En este ejemplo, Importe de venta del distribuidor y Coste total del producto del distribuidor son las únicas medidas disponibles mediante este rol. El resto de las medidas están implícitamente denegadas (los pasos usados para obtener este resultado se indican más adelante, en la sección siguiente, Permitir el acceso a medidas específicas).

Tabla dinámica con celdas permitidas y denegadas

Los permisos de celda se aplican a los datos dentro de la celda, y no a sus metadatos. Observe cómo la celda todavía aparece en los resultados de una consulta, y muestra un valor de #N/A en lugar del valor real de la celda. El valor #N/A aparece en la celda, a no ser que la aplicación cliente convierta el valor o que se especifique otro valor estableciendo la propiedad Secured Cell Value en la cadena de conexión.

Para ocultar la celda completamente debe limitar los miembros (dimensiones, atributos de dimensión y miembros de atributos de dimensión) que pueden visualizarse. Para obtener más información, vea Conceder acceso personalizado a los datos de dimensiones (Analysis Services).

Como administrador, puede especificar si los miembros de roles tienen permisos de lectura, contingente de lectura, o lectura y escritura en las celdas de un cubo. El hecho de colocar los permisos en una celda es el nivel de seguridad más bajo permitido; por ello, antes de empezar a aplicar permisos en este nivel, es importante que tenga en cuenta algunos detalles:

  • La seguridad de nivel de celda no puede ampliar los derechos restringidos a un nivel superior. Un ejemplo: si un rol deniega el acceso a los datos de dimensiones, la seguridad de las celdas no podrá reemplazar el conjunto denegado. Otro ejemplo: imagine un rol con el permiso Leer en un cubo y el permiso Leer/Escribir en una celda. Los permisos de datos de celda no serán Leer/Escribir, sino Leer.

  • Los permisos personalizados deben coordinarse a menudo entre los miembros de la dimensión y las celdas del mismo rol. Por ejemplo, supongamos que quiere denegar el acceso a varias medidas relacionadas con descuentos para varias combinaciones de distribuidores. Con los Distribuidores como datos de dimensión y el Importe de descuento como medida, debería combinar, dentro del mismo rol, permisos en la medida (con la ayuda de las instrucciones de este tema) y en los miembros de dimensión. Vea Conceder acceso personalizado a los datos de dimensiones (Analysis Services) para obtener información detallada sobre cómo establecer los permisos de dimensión.

La seguridad de nivel de celda se especifica con expresiones MDX. Una celda es una tupla (es decir, un punto de intersección en distintas dimensiones y medidas potenciales), por lo que es necesario usar MDX para identificar celdas específicas.

Permitir el acceso a medidas específicas

Puede usar la seguridad de celda elegir de forma explícita las medidas que estarán disponibles. Una vez identificados específicamente los miembros permitidos, el resto de las medidas no están disponibles. Este es, quizá, el escenario más sencillo que se pueda implementar mediante un script MDX, tal y como se detalla en los siguientes pasos.

  1. En SQL Server Management Studio, conéctese a la instancia de Analysis Services, seleccione una base de datos, abra la carpeta Roles y, a continuación, haga clic en un rol de base de datos (o cree un nuevo rol de base de datos). La pertenencia ya debe estar especificada y el rol debe tener acceso de Read al cubo. Consulte Conceder permisos de modelo o de cubo (Analysis Services) si necesita ayuda con este paso.

  2. En Datos de celda, compruebe la selección del cubo para asegurarse de que ha elegido el correcto; a continuación, seleccione Habilitar permisos de lectura.

    Si solo selecciona este cuadro de diálogo y no indica ninguna expresión MDX, el efecto será el mismo que si deniega el acceso a todas las celdas del cubo. Esto se debe a que el conjunto permitido predeterminado es un conjunto vacío siempre que Analysis Services resuelve un subconjunto de celdas de un cubo.

  3. Indique la siguiente expresión MDX.

    (Measures.CurrentMember IS [Measures].[Reseller Sales Amount]) OR (Measures.CurrentMember IS [Measures].[Reseller Total Product Cost])
    

    Esta expresión identifica de forma explícita las medidas que son visibles para los usuarios. No habrá más medidas disponibles para los usuarios que se conectan a través de este rol. Tenga en cuenta que la función CurrentMember (MDX) establece el contexto y la sigue la medida permitida. El efecto de esta expresión es mostrar el valor, en caso de que el miembro actual incluya el Importe de venta del distribuidor o el Coste total del producto del distribuidor. De lo contrario, se deniega el acceso. La expresión tiene varias partes, cada una de ellas entre paréntesis. El operador OR se emplea para especificar varias medidas.

Denegar el acceso a medidas específicas

La siguiente expresión MDX, también especificada en Crear rol | Datos de celda | Permitir la lectura del contenido del cubo, tiene el efecto contrario; hacer que ciertas medidas no estén disponibles. En este ejemplo, Importe de descuento y Porcentaje de descuento se han inhabilitado mediante los operadores NOT y AND. El resto de las medidas estarán visibles para los usuarios que se conectan a través de este rol.

(NOT Measures.CurrentMember IS [Measures].[Discount Amount]) AND (NOT Measures.CurrentMember IS [Measures].[Discount Percentage])

En Excel, la seguridad de celda es clara en la siguiente ilustración:

Columnas de Excel mostrando celdas como no disponibles

Establecer permisos de lectura en medidas calculadas

Los permisos de una medida calculada se pueden establecer independientemente de sus elementos. Vaya a la siguiente sección sobre el Contingente de lectura si quiere coordinar permisos entre una medida calculada y sus medidas dependientes.

Para entender cómo funcionan los permisos de Lectura en las medidas calculadas, observe Beneficio bruto del distribuidor en AdventureWorks. Proviene de las medidas Importe ventas del distribuidor y Costo total del producto del distribuidor. Siempre que un rol tenga el permiso de Lectura en las celdas Beneficio bruto del distribuidor, esta medida se puede ver aunque los permisos estén expresamente denegados en el resto de las medidas. Para ver una demostración, copie la siguiente expresión MDX en Crear rol | Datos de celda | Permitir lectura de contenido del cubo.

(NOT Measures.CurrentMember IS [Measures].[Reseller Sales Amount])
AND (NOT Measures.CurrentMember IS [Measures].[Reseller Total Product Cost])

En Excel, conéctese al cubo con el rol actual y elija las tres medidas para ver los efectos de la seguridad de celda. Tenga en cuenta que las medidas del conjunto denegado no están disponibles, pero la medida calculada está visible para el usuario.

Tabla de Excel con celdas disponibles y no disponibles

Establecer permisos de contingentes de lectura en medidas calculadas

La seguridad de celda ofrece una alternativa, Contingente de lectura, para establecer permisos en las celdas relacionadas que participan en el cálculo. Vuelva a examinar el ejemplo de Beneficio bruto del distribuidor. Al especificar la misma expresión MDX que se proporciona en la sección anterior, colóquela esta vez en la segunda área de texto del cuadro de diálogo Crear rol | Datos de celda (en el área de texto inferior Permitir la lectura del contenido de la celda supeditado a la seguridad de celda), el resultado aparece cuando se ve en Excel. Dado que Beneficio bruto del distribuidor depende de Importe de venta del distribuidor y Costo total del producto del distribuidor, no se puede acceder al beneficio bruto porque no se puede acceder a sus elementos.

[!NOTA]

¿Qué sucede si establece los permisos de Lectura y Contingente de lectura en una celda dentro del mismo rol? El rol proporcionará los permisos de Lectura de la celda, y no los permisos de Contingente de lectura.

Recuerde que, como se indica en las secciones anteriores, si solo selecciona el cuadro de diálogo Habilitar los permisos de contingente de lectura sin indicar ninguna expresión MDX, se denegará el acceso a todas las celdas del cubo. Esto se debe a que el conjunto permitido predeterminado es un conjunto vacío siempre que Analysis Services resuelve un subconjunto de celdas de un cubo.

Establecer permisos Lectura y escritura en una celda

Los permisos de Lectura y escritura de una celda se usan para habilitar la reescritura, siempre que los miembros dispongan de permisos de lectura y escritura en el cubo. Los permisos que se conceden en las celdas no pueden ser superiores a los permisos concedidos en un cubo. Para obtener información detallada, vea Establecer la reescritura de particiones.

Vea también

Tasks

Conceder permisos de procesamiento (Analysis Services)

Conceder permisos en una dimensión (Analysis Services)

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

Referencia

Cuadro de diálogo Generador MDX (Analysis Services - Datos multidimensionales)

Conceptos

Script MDX básico (MDX)

Conceder permisos de modelo o de cubo (Analysis Services)