RLS dinámico en Power BI con tablas de mapeo
La Row-Level Security (RLS) de Power BI garantiza que Juan vea solo las ventas del Norte y María solo las del Sur, aunque ambos usen el mismo informe. La RLS dinámica usa la dirección de correo del usuario autenticado para filtrar los datos automáticamente.
Arquitectura de mapeo
En lugar de crear un rol por región (lo que no escala), cree una tabla dim_UserRegion:
| Email | Region |
|------------------------|----------|
| juan@empresa.com | Norte |
| maria@empresa.com | Sur |
| admin@empresa.com | * |
Configurar el rol en Power BI Desktop
En Modelling → Manage Roles, cree el rol VendedorDinamico y aplique el siguiente filtro DAX en la tabla dim_Region:
[Region] = LOOKUPVALUE(
dim_UserRegion[Region],
dim_UserRegion[Email], USERPRINCIPALNAME()
) || LOOKUPVALUE(
dim_UserRegion[Region],
dim_UserRegion[Email], USERPRINCIPALNAME()
) = "*"
Publicar y asignar
Tras publicar en el Power BI Service, vaya a Dataset → Security y añada los usuarios o grupos de Azure Active Directory al rol VendedorDinamico. No es necesario añadir a cada persona — la lógica de filtrado la resuelve la tabla de mapeo.
Probar
Use View As → Other User en Power BI Desktop o Test as Role en el Service para verificar lo que ve cada usuario antes de publicar a producción.
Conclusión
La RLS dinámica con tablas de mapeo es el enfoque recomendado por Microsoft para una seguridad a nivel de fila escalable. Al centralizar los permisos en una tabla de datos, los cambios organizativos se convierten en una simple actualización de fila — sin tocar el informe.