PowerLens
Todas las publicaciones
Power BI25 de septiembre de 2025· 4 min de lectura

Guía Completa de Row Level Security (RLS) en Power BI: Implementación Práctica

J

Juan Carlos Santiago

Guía Completa de Row Level Security (RLS) en Power BI: Implementación Práctica

¿Qué es Row Level Security (RLS) en Power BI?

Row Level Security o RLS es un mecanismo de seguridad que permite controlar qué datos pueden ver los usuarios finales en tus reportes y dashboards de Power BI. En lugar de crear múltiples versiones del mismo reporte, RLS filtra automáticamente los datos basándose en quién está viendo el contenido.

Imagina que tienes un dashboard de ventas con información de múltiples regiones. Con RLS, el gerente de la región Sur solo verá datos de su región, mientras que el director nacional verá todo. Esto se logra a través de reglas que se aplican en la capa de datos.

¿Cuándo Necesitas Implementar RLS?

No todos los proyectos requieren RLS. Considera implementarla cuando:

  • Tienes múltiples usuarios con diferentes niveles de acceso a datos
  • Necesitas mantener datos confidenciales separados por departamento, región o equipo
  • Quieres distribuir un único reporte a diferentes públicos sin duplicar el contenido
  • Tienes normativas de cumplimiento que requieren control granular de datos
  • El número de reportes a mantener haría prohibitivo crear versiones separadas

Si solo tienes 2-3 usuarios internos y datos simples, probablemente no necesites RLS.

RLS Estática vs RLS Dinámica

RLS Estática

Las reglas RLS estáticas utilizan valores fijos en tus expresiones DAX. Son simples de configurar pero requieren actualización manual cuando cambia la estructura.

Ejemplo:

[Region] = "Sur"

Usa RLS estática cuando:

  • El número de roles es pequeño y estable
  • Los criterios no cambian frecuentemente
  • La complejidad es mínima

RLS Dinámica

La RLS dinámica utiliza funciones DAX como USERNAME() o USERPRINCIPALNAME() para filtrar datos automáticamente según el usuario conectado.

Ejemplo:

[Email_Gerente] = USERPRINCIPALNAME()

Usa RLS dinámica cuando:

  • Tienes muchos usuarios (más de 20-30)
  • Los permisos cambian frecuentemente
  • Necesitas automatización completa
  • Integras con Azure AD para mapeo automático

La RLS dinámica requiere una tabla de mapeo de usuarios que mantengas actualizada. Este es un punto crítico que muchos olvidan.

Pasos para Configurar RLS en Power BI Desktop

Paso 1: Crear la Estructura de Datos

Primero, asegúrate de tener una tabla de dimensión clara. Por ejemplo, si usas RLS por región:

Tabla: Regiones
- Region_ID
- Region_Nombre
- Manager_Email (para RLS dinámica)

Paso 2: Crear los Roles

  1. En Power BI Desktop, ve a ModeladoAdministrar roles
  2. Haz clic en Crear
  3. Asigna un nombre significativo al rol (ej: "Gerente_Sur")
  4. Define la expresión DAX que filtrará los datos

Paso 3: Escribir la Expresión DAX

Esta es la parte crítica. Para RLS estática:

[Region] = "Sur"

Para RLS dinámica con tabla de mapeo:

[Manager_Email] = USERPRINCIPALNAME()

Para RLS dinámica más compleja:

[Territorio] IN VALUES(Usuarios[Territorio_Asignado])

Paso 4: Aplicar a las Tablas Correctas

No apliques RLS a todas las tablas. Solo a las tablas que contienen datos sensibles. Las tablas de referencia pueden quedar sin filtro.

Testing en Power BI Desktop

Esto es fundamental y a menudo se ignora:

  1. Ve a ModeladoVer como roles
  2. Selecciona el rol que deseas probar
  3. Ingresa el usuario (si es dinámica)
  4. Verifica que solo ves los datos correctos
  5. Repite para cada rol

Un error común: asumir que RLS funciona sin probarlo. Dedica 30 minutos a testing antes de deploy.

Implementación en Power BI Service

  1. Publica tu reporte a Power BI Service
  2. Ve a Configuración de tu dataset → Seguridad a nivel de fila
  3. Los roles que creaste aparecerán automáticamente
  4. Para RLS dinámica, asigna usuarios a roles
  5. Usa Power BI Embedded o Premium para aplicar RLS a usuarios externos

Errores Comunes y Cómo Evitarlos

  • Expresiones DAX demasiado complejas: Mantén la lógica simple y legible
  • No sincronizar la tabla de mapeo: En RLS dinámica, esta tabla es tu fuente de verdad
  • Olvidar probar en Service: Lo que funciona en Desktop puede fallar en la nube
  • Performance: RLS puede ralentizar queries. Monitorea con DAX Studio
  • Mezclar RLS con permisos de workspace: RLS filtra datos, los permisos controlan acceso al reporte

Pro Tip

Crea una tabla de auditoría que registre qué usuarios acceden a qué datos. Añade una columna [Last_Access] en tu tabla de mapeo de usuarios. Esto te ayuda a mantener la tabla actualizada y detectar usuarios inactivos que podrías desactivar. En RLS dinámica, los usuarios fantasma representan el mayor riesgo de seguridad.

Además, versiona tus roles. Si cambias una regla RLS, documenta la versión anterior. Una simple columna en un archivo Excel con la fecha de cambio te salvará en auditorías.

#power-bi#seguridad#rls#row-level-security#analítica