(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa
Power BI

RLS dinámico en Power BI con tablas de mapeo

João Barros 22 de November de 2024 2 min de lectura

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.

Compartir: