Introducción a la seguridad de dimensión en SQL Server Analysis Services 2005 SSAS

Problema
que he visto la punta de la dinámica de control de datos de filtrado de SQL Server Reporting Services , que mostraron la forma de aprovechar un cuadro Servidor de base de datos SQL a los datos de ventas de filtros basados ​​en el usuario que ejecuta el informe. Tengo un requisito similar para implementar el filtrado dinámico, excepto mis datos en un SQL Server Analysis Services (SSAS) del cubo y los usuarios la consulta de los datos con una variedad de diferentes herramientas. ¿Cómo se puede implementar la seguridad dinámica, en mi caso?

Solución
SSAS tiene un modelo de seguridad robusto que proporciona para el filtrado dinámico a través de un modelo de seguridad basado en roles. Crear funciones y asignar usuarios de Windows, los grupos de Windows, o ambos a ser miembros de una función, a continuación, especificar diversos ajustes de seguridad para cada función. 

A modo de ejemplo, he creado un cubo de SSAS sobre la base de la base de datos de SQL Server utilizado en la punta antes mencionados en el enunciado del problema. La estructura del cubo es la siguiente:

Nuestra tarea consiste en filtrar dinámicamente la lista de cargos sobre la base del usuario que accede al cubo. Si el usuario consulta el cubo de Excel, cuando el usuario arrastra la dimensión de la Oficina en las filas o columnas de una tabla dinámica, queremos que la lista de las oficinas para incluir solo las oficinas que el usuario tiene permiso para ver.Vamos a configurar la seguridad basada en el cubo para llevar a cabo de la siguiente manera:

  • Papel de CEO puede ver todas las oficinas

  • Papel ManagerRegion1 puede ver las oficinas de Baltimore, Filadelfia y Wilmington

  • Papel BaltimoreSales sólo pueden ver la oficina de Baltimore

Configuración de la seguridad basada en el Cubo

Para empezar, abra SQL Server Management Studio (SSMS), vaya a la exploración de objetos, y conectarse a su servidor de Analysis Services. Ubique el cubo en el Explorador de objetos, como se muestra a continuación:

Haga clic derecho en el nodo Funciones, a continuación, seleccione Nuevo papel para poner en marcha el diálogo Crear una función como se muestra a continuación:

He llamado a esta BaltimoreSales papel, sino que se utiliza para conceder acceso a la oficina de ventas de Baltimore datos a las personas adecuadas. Haga clic en Miembros en la lista Seleccionar una página del cuadro de diálogo Crear función para especificar los miembros de esta función:

El cuadro de diálogo anterior tiene un botón Añadir en la esquina inferior derecha (no se muestra arriba), haga clic en ese botón para localizar a los usuarios de Windows y / o grupos de Windows para agregar a esta función. En el ejemplo anterior he añadido un solo usuario a la función.

Haga clic en los cubos en la lista Seleccionar una página del cuadro de diálogo Crear función de permitir el acceso papel BaltimoreSales al cubo:

Haga clic en Dimension Data en la lista Seleccionar una página del cuadro de diálogo Crear función para especificar que los miembros de la dimensión de la Oficina este papel se le permite ver:

En el cuadro de diálogo anterior podemos especificar las oficinas que esta función se puede ver sobre la base de las siguientes opciones:

  • Seleccione todos los miembros y de forma manual anular la selección de los miembros de negar

  • Anular la selección de todos los miembros y seleccionar manualmente los miembros para que

Elegí la segunda opción ya que si se agregan nuevos miembros que inicialmente se negó, con la primera opción los nuevos miembros podrán añadir por defecto. Elija la opción apropiada según sus circunstancias. 

Esto completa la configuración para el papel BaltimoreSales. Repita los pasos anteriores para configurar otras funciones cuando sea necesario.

Prueba de la seguridad basada en el Cubo

Para poner a prueba nuestra seguridad basada en funciones vamos a utilizar el Business Intelligence Development Studio (BIDS) que viene con SQL Server. OFERTAS tiene un navegador integrado en el cubo para el tipo de proyecto SSAS. El explorador de cubos proporciona una opción para especificar la función (s) que desea utilizar para la prueba.La cuenta de usuario que utilice tendrá que ser un miembro de cada función que se desea probar. Si bien no es la mejor opción desde un punto de vista de seguridad, la cuenta utilizada para desarrollar y probar es a menudo un miembro del grupo de administradores local, que va a funcionar.

El explorador de cubos se muestra a continuación, me han puesto de manifiesto la opción de barra de herramientas que le permite especificar las credenciales que se utilizarán para examinar el cubo:

Haga clic en la opción de barra de herramientas de resaltado para especificar las credenciales que se utilizarán como se muestra a continuación:

El valor predeterminado es utilizar las credenciales del usuario actual. Se puede especificar un usuario o una o más funciones. Seleccione el papel BaltimoreSales a continuación, busque el cubo. El explorador de cubos muestra lo siguiente sobre la base de nuestra selección de papel:

Tenga en cuenta que la única oficina que se muestra es de Baltimore y de allí es un mensaje informativo que indica que está navegando por el cubo con el papel BaltimoreSales. Si cambio de las credenciales para el uso del papel ManagerRegion1, el explorador de cubos muestra:

En este caso vemos los datos de las tres oficinas. Por último, si puedo cambiar las credenciales para utilizar la posición de CEO veo los datos de ventas para todas las oficinas:

Usted puede haber notado que aunque la lista de oficinas que figuran era lo que esperábamos en cada caso, el total, debido a la venta total de todas las oficinas, no se limita sólo a las oficinas que el papel se deja ver. Este es el comportamiento predeterminado. Usted puede cambiar esto de volver al diálogo de Dimension Data, donde se seleccionaron las oficinas que el papel se puede ver. Haga clic en la ficha Opciones avanzadas y haga clic en la casilla de verificación Habilitar visual total.

La solución anterior no tendrán ningún problema para un número relativamente pequeño de usuarios, donde las reglas de autorización son bastante estáticas. Lo ideal es crear grupos de Windows, asignar usuarios a esos grupos, a continuación, agregar el grupo de Windows (s) a las funciones de cubo. En una punta el futuro voy a explorar las opciones disponibles para la aplicación de seguridad de dimensión que están utilizando las expresiones MDX y la creación de procedimientos almacenados utilizando. NET.

Los próximos pasos

  • Descargar el código de ejemplo y experimentar con él. El archivo incluye una copia de seguridad de la base de datos de SQL Server utiliza para crear el cubo, el proyecto de SSAS, y una copia de seguridad del propio cubo.Usted puede utilizar SSMS para editar las funciones y / o añadir sus propios roles.
  • Seguridad de las dimensiones de un cubo de SSAS es mucho más robusta que lo que conseguimos con una base de datos relacional de SQL Server. Esto es bueno saberlo, porque los usuarios se van a plantear a todo tipo de regímenes de autorización.

Fuente:

http://www.mssqltips.com/sqlservertip/1834/introduction-to-dimension-security-in-sql-server-analysis-services-ssas-2005/

Publicado el 10 enero, 2012 en SQL Server Analysis Services. Añade a favoritos el enlace permanente. 1 comentario.

  1. Gracias por esta explicacion esta bien clara y me funciona exactamente como esta en el ejemplo sin embargo tengo el problema que al entrar desde otra computadora cualquiera al sitio http://servidor/bi-cubos/default.aspx me muestra toda la informacion, quiero decir que no me filtra de acuerdo a la seguridad definida en el cubo.
    El escenario es: El cubo esta en un servidor windows 2003 server, no tiene active directory, tengo agregadas cuentas locales del servidor,tengo configurado el sitio en el iis seguridad integrada a window, por tal razon me solicita usuario y clave al presionar click sobre el acceso directo del cubo. agradere alguna idea para solucionar mi problema muchas gracias

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: