Business Intelligence, Data Warehouse, SQL Server, SQL Server 2012, Trucos

Establecer el acceso a cubos de datos para usuarios y grupos de usuarios

Durante el desarrollo de un cubo de datos multidimensional con SQL Server 2012 (o bien a su finalización), resulta necesario establecer una adecuada política de permisos para determinar qué usuarios podrán acceder a la información que contiene.

Con tal fin tenemos a nuestra disposición los roles, elementos integrantes de una base de datos multidimensional, mediante los cuales podremos gestionar los diferentes modos de acceso a la misma, según el usuario o grupo de usuarios que necesiten ejecutar consultas contra el cubo.

Como ejemplo introductorio en el uso de roles en una base de datos multidimensional, supongamos que hemos creado desde SQL Server Data Tools (SSDT) un proyecto de tipo Analysis Services Multidimensional, conteniendo un cubo con el nombre VentasInternet, que emplea la base de datos AdventureWorksDW2012. Este cubo está formado por dos dimensiones: Fecha (tabla DimDate) y Moneda (tabla DimCurrency), y una medida basada en la suma de la columna SalesAmount de la tabla FactInternetSales.

EstablecerAccesoCubosDatosGruposUsuarios_01

 

Por otro lado tenemos una serie de usuarios en nuestro sistema que necesitarán acceder a este cubo.

EstablecerAccesoCubosDatosGruposUsuarios_02

 

Pero si alguno de estos usuarios intenta actualmente conectarse al cubo desde Excel utilizando la opción Obtener datos externos | De otras fuentes | Desde Analysis Services, de la pestaña Datos, se encontrará con un aviso que le impide acceder al cubo, debido a que no cuenta con los permisos necesarios.

EstablecerAccesoCubosDatosGruposUsuarios_03

 

Para solucionar este inconveniente, en el proyecto de análisis de SSDT en el que hemos creado el cubo, haremos clic derecho en el nodo Roles, seleccionando la opción New Role.

EstablecerAccesoCubosDatosGruposUsuarios_04

 

Una vez creado el rol, en la pestaña Membership haremos clic en el botón Add para añadir un usuario, al que concederemos permiso a través del cuadro de diálogo de selección de usuarios.

EstablecerAccesoCubosDatosGruposUsuarios_05

 

A continuación, en la pestaña Cubes abriremos la lista desplegable Access seleccionando el valor Read, lo que proporcionará acceso de lectura al cubo.

EstablecerAccesoCubosDatosGruposUsuarios_06

 

Después de volver a desplegar la solución en el servidor de Analysis Server, el usuario que acabamos de añadir al rol ya podrá conectarse al cubo.

En el caso de contar con un elevado número de usuarios, podemos gestionar más eficazmente las políticas de acceso empleando grupos de usuarios del sistema operativo, lo que facilitará las operaciones de mantenimiento de los permisos sobre los cubos de las diferentes bases de datos de análisis que compongan nuestro sistema de información.

Como muestra hemos creado el grupo ConsultaCubosVentas, integrado por los dos usuarios restantes que hemos utilizado en este ejemplo.

EstablecerAccesoCubosDatosGruposUsuarios_07

 

Ahora bien, cuando vayamos a agregar este grupo al rol de nuestra solución de análisis en la forma explicada anteriormente podemos llevarnos una pequeña sorpresa, ya que el cuadro de diálogo de selección de usuarios es posible que nos avise de que el grupo de usuarios que intentamos añadir no existe.

EstablecerAccesoCubosDatosGruposUsuarios_08

 

Para solucionar este problema, en el cuadro de diálogo haremos clic en el botón Tipos de objeto, y en la ventana de selección que se abrirá a continuación comprobaremos que el motivo de este comportamiento reside en que el objeto Grupos no está seleccionado.

EstablecerAccesoCubosDatosGruposUsuarios_09

 

Marcando la casilla Grupos ya podremos añadir el grupo de usuarios al rol, de forma que los permisos que establezcamos en el rol se aplicarán a todos los usuarios que compongan dicho grupo.

EstablecerAccesoCubosDatosGruposUsuarios_10

 

Esperamos que este pequeño truco resulte de ayuda a todos los lectores que necesiten establecer los permisos de acceso a los cubos desarrollados a través del modelo multidimensional de Analysis Services. Aunque los ejemplos expuestos en el presente artículo se han elaborado utilizando SQL Server 2012, resultan de igual aplicación en versiones anteriores de esta plataforma.

1 Comentario

  1. anonymous

    La obtención de detalles (drillthrough) es una característica de los cubos de datos multidimensionales

Deja un comentario

Tema creado por Anders Norén