Conoce como funcionan los roles en Power BI y SSAS
En esta entrada, os vamos a enseñar los pasos a seguir para implementar la seguridad dinámica a nivel de fila dentro de un modelo tabular de Analysis Services y posteriormente visualizarlo en Power BI, la mejor herramienta de Business Intelligence.
Para realizar un ejemplo práctico, vamos a imaginar que nuestro cliente nos pide que los informes se filtren automáticamente por la empresa a la que pertenece el usuario que accede al informe.
1. Proyecto SSAS Tabular
Partiendo del siguiente Modelo en Analysis Services Tabular.
Lo primero que debemos hacer es crear una tabla que nos sirva para relacionar los usuarios de Active Directory (Usuarios) con la tabla a filtrar (Empresas).
Ya con la tabla de seguridad (Usuarios) en nuestras manos, la relacionamos con la tabla Empresas en el Modelo.
Después nos dirigimos a la pestaña Model y hacemos clic en Roles. En el cuadro de diálogo Administrador de roles, hacemos clic en Nuevo y añadimos el rol “RolEmpresaUsuario” con permisos de lectura.
En la pestaña Members añadimos a los usuarios o grupos de la tabla Usuarios que hemos creado previamente.
Para finalizar con la configuración del Rol, vamos a definir el filtro a nivel de fila dentro de la tabla donde queramos que se aplique. Con este filtro conseguiremos que la tabla Empresas se filtre dependiendo del usuario que acceda.
En Dax Filter añadimos la siguiente consulta, la cual nos indicará las empresas a las que pertenece el usuario que ha accedido al informe.
Empresas[idEmpresa]
= LOOKUPVALUE (
Usuarios[idUsuarios];
Usuarios[UsuarioDominio]; USERNAME ();
Usuarios[idUsuarios]; Empresas[idEmpresa]
)
Para que los clientes no puedan acceder a la tabla usuarios en Dax Filter indicamos que Usuarios=FALSE() y ocultamos la tabla en el modelo.
Hacemos Deploy y ya tendríamos el proyecto de SSAS listo para utilizar.
Creamos un informe en Power BI Desktop. Si queremos que se visualice el usuario con el que se accede al informe, podemos crear la siguiente medida dentro de SSAS -> Usuario:=USERNAME().
Si publicáramos el informe ahora mismo nos aparecería un error indicándonos que no existe ningún origen de datos para este informe, por lo que sería necesario crear una puerta de enlace.
2. Puerta de enlace
Para tener conectividad entre nuestra instancia tabular y Power Bi Online necesitamos establecer una conexión segura instalando la puerta de enlace de Power BI.
La puedes descargar e instalar aquí.
Una vez tengamos instalada y configurada la puerta de enlace crearemos un origen de datos. Para crear el origen de datos nos dirigimos al servicio de Power Bi Online -> Configuración -> Administrar puertas de enlace y creamos un nuevo origen de datos SSAS.
Ahora ya podemos publicar el informe desde Power Bi desktop. Una vez publicado el informe, accederemos con el usuario con el que lo hemos publicado, en nuestro caso “Pepe”.
Como podéis observar, aparecen los datos de todas las empresas. Ahora procederemos a compartir el panel con “Pedro”.
Abriremos el servicio de Power Bi Online con la cuenta de “Pedro” y visualizaremos el panel compartido.
Como podéis observar, en el panel aparecen solo los datos de la Empresa Google ya que en nuestro ejemplo “Pedro” tiene asignada esta empresa.
Si quieres que ayudemos a tu negocio o empresa contacta con nosotros en info@aleson-itc.com o llámanos al +34 962 681 242
Business Intelligence Expert Consultant. Specialising in creation of Data Warehouse, Analysis Services, Power BI, SSIS, SSRS and Databricks.