Share via


Conceder acceso personalizado a los datos de las celdas

Después de conceder a una función de base de datos en Microsoft SQL Server 2005 Analysis Services (SSAS) permisos de lectura o lectura/escritura en un cubo, los miembros de la función tendrán acceso para ver todos los datos de las celdas. Para limitar el acceso a determinadas celdas, debe restringir específicamente el acceso a las celdas. Para restringir el acceso a miembros de dimensiones específicas, vea Conceder acceso personalizado a los datos de las celdas.

Para conceder a una función de base de datos acceso a determinadas celdas, utilice una expresión MDX (Expresiones multidimensionales) para definir un intervalo de celdas con permisos de lectura, contingente de lectura o lectura/escritura. Para obtener más información, vea Utilizar expresiones MDX para establecer permisos en los datos de las celdas.

Directrices para el establecimiento de permisos

Independientemente de si una función de base de datos tiene permiso de lectura, de contingente de lectura o de lectura/escritura en los datos de una celda, existen directrices e información general que pueden servir de ayuda para facilitar el uso de estos permisos.

  • Preste atención cuando conceda permisos a celdas derivadas
    Una celda derivada obtiene sus datos de otras celdas. Si la función de base de datos tiene permiso en la celda derivada, pero no en las celdas de las que la celda derivada obtiene sus valores, existe la posibilidad de que un miembro de esa función de base de datos puede inferir en los valores de las celdas sobre las que no se dispone de permiso. Supongamos, por ejemplo, que una función de base de datos tiene permiso en las celdas de las medidas Sales y Profit (es decir, estas medidas están visibles para la función de base de datos), pero la función no tiene permiso en las celdas de la medida Cost. Un miembro de esta función de base de datos podría determinar los valores de la medida Cost restando los valores de la medida Profit de los valores de la medida Sales.

  • Los permisos de los datos en las celdas no pueden ser superiores a los permisos en el cubo
    Los permisos concedidos en determinadas celdas no pueden superar los permisos que se conceden a una función de base de datos en todo el cubo. Supongamos, por ejemplo, que una función de base de datos tiene permiso de lectura/escritura en una celda, pero esa misma función de base de datos sólo tiene permiso de lectura en el cubo. El permiso de datos de la celda no será de lectura/escritura. Solamente será de lectura.

  • El acceso a los datos de la celda no concede acceso a los datos de la dimensión
    Aunque una función de base de datos puede tener acceso a los datos de una celda, no podrá tener acceso a los datos de dimensión a no ser que se le haya concedido permiso de lectura o de lectura/escritura en los datos de dimensión de forma independiente. El acceso a los datos de cubo puede restringir el acceso a los atributos de dimensión a los que la función de base de datos tiene acceso, pero no puede extender el acceso a los atributos de dimensión a los que la función de base de datos no tiene acceso.

  • La denegación de acceso a los datos de celda no oculta la celda a los usuarios
    Los permisos de acceso de los datos de celda no pueden controlar si una función de base de datos puede ver una celda, pero en cambio, pueden controlar si la función ve el contenido de la celda. Si una función de base de datos no tiene acceso a los datos de una celda, la celda sigue visible en los resultados de una consulta. Sin embargo, la celda contiene el valor #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.

    Si no desea que la celda esté visible en los resultados, 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 de dimensiones y Conceder acceso personalizado a datos de dimensión.

Establecer permiso de lectura en una celda de datos

Las celdas en las que una función de base de datos tiene permiso de lectura están visibles para los miembros de la función de base de datos. Estas cedas están visibles aunque se deriven de celdas en las que la función de base de datos no tiene ningún permiso de acceso.

Por ejemplo, suponga que existe una medida calculada denominada Profit que se deriva de celdas utilizadas para las medidas Sales y Cost. Si una función de base de datos tiene permiso de lectura en las celdas de Profit, esta medida estará visible aunque la función de base de datos no tenga permiso en las celdas de las medidas Sales o Cost.

Nota

Si a una función de base de datos se le concede permiso de lectura en un subconjunto de celdas de un cubo, pero esa función no tiene una expresión MDX que especifica las celdas en las que se conceden permisos de lectura, la función de base de datos no tiene permiso de lectura en ninguna de las celdas del cubo. Esto se debe a que el conjunto permitido predeterminado es un conjunto vacío cuando Analysis Services resuelve un subconjunto de celdas de un cubo.

Para conceder permisos de acceso a un miembro de una dimensión, un usuario debe ser miembro de la función de servidor de Analysis Services o un miembro de una función de base de datos de Analysis Services con permisos Control total (Administrador).

Para conceder a una función de base de datos acceso de lectura a los datos de la celda

  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 Datos de la celda del cubo en el panel Seleccionar una página, seleccione el cubo en la lista Cubo y, a continuación, active la casilla Habilitar permisos de lectura.

    Si no se especifica ningún miembro en el cuadro Permitir la lectura del contenido del cubo, todas las celdas del cubo estarán visibles.

  3. Para específicamente conceder acceso sólo a determinados miembros, escriba la expresión MDX de dichas celdas del cubo en el cuadro Permitir la lectura del contenido del cubo. Ninguna otra celda del cubo estará visible.

    Para ayudar a generar una expresión MDX, haga clic en el botón Examinar situado junto a Editar MDX y, a continuación, utilice la ventana Generador MDX que aparece para crear su expresión MDX.

    Para ver ejemplos de las expresiones MDX utilizadas para establecer los datos de las celdas, vea Utilizar expresiones MDX para establecer permisos en los datos de las celdas.

Establecer permiso de contingente de lectura en una celda de datos

Las celdas en las que una función de base de datos tiene permisos de contingente de lectura sólo están visibles si alguna de las siguientes condiciones es verdadera:

  • Las celdas con permiso de contingente de lectura no se derivan de otras celdas.

  • Las celdas con permiso de contingente de lectura se derivan de otras celdas, pero la función de base de datos tiene permiso de lectura en todas las celdas de las que se deriva la celda.

Por ejemplo, una función de base de datos tiene permiso de contingente de lectura en las celdas Profit. Las celdas Profit se derivan de las medidas Sales y Cost. En este caso, las celdas Profit sólo están visibles si la función de base de datos tiene permiso de lectura para las medidas Sales y Cost. Si la función de base de datos tiene permiso de contingente de lectura para las celdas Cost, y la medida Cost se ha derivado de otras celdas, las celdas de Profit sólo estarán visibles si la función de base de datos tenía permiso de lectura en las celdas de las que se ha derivado la medida Cost. Por tanto, se puede crear una cadena de contingencias con el permiso de contingente de lectura si la celda se deriva de otras, que a su vez se derivan de otras, y así sucesivamente.

Nota

Si una función de base de datos tiene permisos de lectura y de contingente de lectura en una celda, la función tiene permiso de lectura en la celda.

Nota

Si a una función de base de datos se le concede permiso de contingente de lectura en un subconjunto de celdas de un cubo, pero esa función no tiene una expresión MDX que especifica las celdas en las que se conceden permisos de contingente de lectura, la función de base de datos no tiene permiso de contingente de lectura en ninguna de las celdas del cubo. Esto se debe a que el conjunto permitido predeterminado es un conjunto vacío cuando Analysis Services resuelve un subconjunto de celdas de un cubo.

Para conceder permisos de acceso a un miembro de una dimensión, un usuario debe ser miembro de la función de servidor de Analysis Services o un miembro de una función de base de datos de Analysis Services con permisos Control total (Administrador).

Para conceder a una función de base de datos acceso de contingente de lectura a los datos de la celda

  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 Datos de la celda del cubo en el panel Seleccionar una página, seleccione el cubo en la lista Cubo y, a continuación, active la casilla Habilitar permisos de contingente de lectura.

  3. En el cuadro Permitir la lectura del contingente del contenido de la celda en la seguridad de celda, escriba una expresión MDX que identifique las celdas en las que la función de base de datos tiene permisos de contingente de lectura.

    Para ayudar a generar una expresión MDX, haga clic en el botón Examinar situado junto a Editar MDX y, a continuación, utilice la ventana Generador MDX que aparece para crear su expresión MDX.

    Para ver ejemplos de las expresiones MDX utilizadas para establecer los datos de las celdas, vea Utilizar expresiones MDX para establecer permisos en los datos de las celdas.

Establecer permiso de lectura/escritura en una celda de datos

Las celdas en las que una función de base de datos tiene permisos de lectura/escritura están visibles y pueden actualizarse por parte de los miembros de la función de base de datos, siempre y cuando los miembros tengan permisos de lectura/escritura en el propio cubo. Los permisos que se conceden en las celdas no pueden ser superiores a los permisos concedidos en un cubo.

Nota

Si a una función de base de datos se le concede permiso de lectura/escritura en un subconjunto de celdas de un cubo, pero esa función no tiene una expresión MDX que especifica las celdas en las que se conceden permisos de lectura/escritura, la función de base de datos no tiene permiso de lectura/escritura en ninguna de las celdas del cubo. Esto se debe a que el conjunto permitido predeterminado es un conjunto vacío cuando Analysis Services resuelve un subconjunto de celdas de un cubo.

Para conceder o denegar permisos a celdas específicas, el usuario debe ser miembro de la función de servidor de Analysis Services o miembro de una función de base de datos de Analysis Services con permisos de Control total (Administrador).

Para conceder a una función de base de datos acceso de lectura/escritura en los datos de la celda

  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 Datos de la celda del cubo en el panel Seleccionar una página, seleccione el cubo en la lista Cubo y, a continuación, active la casilla Habilitar permisos de lectura/escritura.

  3. En el cuadro Permitir la lectura y la escritura del contenido del cubo, escriba una expresión MDX que identifique las celdas en las que la función de base de datos tiene permisos de lectura/escritura.

    Para ayudar a generar una expresión MDX, haga clic en el botón Examinar situado junto a Editar MDX y, a continuación, utilice la ventana Generador MDX que aparece para crear su expresión MDX.

    Para ver ejemplos de las expresiones MDX utilizadas para establecer los datos de las celdas, vea Utilizar expresiones MDX para establecer permisos en los datos de las celdas.