Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! It's time to submit your entry. Live now!
¡Hola!
Puedo necesitar tu ayuda con una pregunta sobre Seguridad a Nivel de Fila.
Tengo un modelo en el que apliqué RLS basado en el UPN, que funciona bien.
RLS filtra la tabla Team (puente), que a su vez filtra Regelingen (dim), que filtra Registraties (hecho) y otras tablas de hechos.
También tenemos las dimensiones Behandelaar y Reviewer, que ambas cuentan con una larga lista de empleados. Ambos tienen una columna Equipo que corresponde con el equipo de columna en la tabla Equipo.
Mi pregunta:
Me gustaría filtrar tanto las dimensiones de Behandelaar como las de revisores basándome en los Teams filtrados por RLS, para que los usuarios solo vean el Behandelaren y los revisores de su propio equipo en los slicers. He intentado añadir a Behandelaren[Equipo] EN VALORES(Equipo[Equipo]) y Revisor[Equipo] EN VALORES(Equipo[Equipo]) en el rol de UPN. Pero eso no parece funcionar.
¿Cuál sería la forma correcta y más limpia de que los slicers basados en Behandelaar y Reviewer muestren solo empleados del equipo? Hay múltiples tablas de factos en el modelo, por lo que se necesitan las dimensiones.
Solved! Go to Solution.
Hola @Chewdata
Tu enfoque es correcto; Necesitas añadir restricciones para Behandelaren y los Revisores al rol RLS, pero la expresión que usaste es incorrecta.
Primero deberías filtrar los permisos de Teams que tiene el usuario actual y luego usar esos elementos para restringir a Behandelaren y a los revisores.
En resumen, necesitas cambiar Behandelaren[Equipo] EN VALORES(Equipo[Equipo]) a:
VAR AccessTeamItems =
CALCULATETABLE(
VALUES(RLS[Team]),
RLS[UPN]=USENAME(),
ALL()
)
RETURN
Behandelaren[Team] IN AccessTeamItems
// Reviewers[Team] IN AccessTeamItems
¿He respondido a tu pregunta? Si es así, por favor marcad mi publicación como solución y ¡agradece tus kudos!
Gracias~
La solución más limpia es dejar que el modelo de datos haga el trabajo en lugar de intentar forzarlo con VALUES() dentro del rol RLS.
Tu RLS ya funciona así:
RLS (UPN) → Equipo → Reglamentos → Registros (+ otros datos)
Para asegurarte de que Behandelaar y Reviewer se filtren igual, simplemente conéctalos también con Team :
Relación: Equipo[Equipo] (1) → Behandelaar[Equipo] (*)
Relación: Equipo[Equipo] (1) Revisor →[Equipo] (*)
Dirección de filtro cruzado: Simple (de Equipo a la dimensión es suficiente)
Mantén tu RLS tal cual está en la tabla RLS/Usuarios (RLS[UPN] = USERPRINCIPALNAME()).
Dado que RLS ya filtra la tabla Equipo , ese filtro se propagará automáticamente a través de estas relaciones y restringirá ambas dimensiones. Tus slicers para Behandelaar y Reviewer solo mostrarán a los empleados de los equipos permitidos, sin necesidad de condiciones adicionales de DAX.
Así que la clave es: resolverlo en el modelo, no en la expresión VALUES().
RLS (Usuarios)
|
| 1:* (RLS filtra equipos mediante UPN → mapeo de equipos)
v
Equipo
├── 1:* → Reglamentos → 1:* → Registros
├── 1:* → Practicante
└── 1:* → Reseñador
Parece una respuesta de IA, Teams no puede conectarse a las tablas de Behandelaren o Revisores porque eventualmente controlarán la tabla de Registros, lo que resultará en un error. Porque solo puede haber un camino de relación entre dos tablas.
Hola @Chewdata
Tu enfoque es correcto; Necesitas añadir restricciones para Behandelaren y los Revisores al rol RLS, pero la expresión que usaste es incorrecta.
Primero deberías filtrar los permisos de Teams que tiene el usuario actual y luego usar esos elementos para restringir a Behandelaren y a los revisores.
En resumen, necesitas cambiar Behandelaren[Equipo] EN VALORES(Equipo[Equipo]) a:
VAR AccessTeamItems =
CALCULATETABLE(
VALUES(RLS[Team]),
RLS[UPN]=USENAME(),
ALL()
)
RETURN
Behandelaren[Team] IN AccessTeamItems
// Reviewers[Team] IN AccessTeamItems
¿He respondido a tu pregunta? Si es así, por favor marcad mi publicación como solución y ¡agradece tus kudos!
Gracias~
Sí, esto funcionó perfectamente, ¡muchas gracias!
¡Hola @Chewdata
Añadir reglas RLS separadas en las tablas de Behandelaar y Revisor usando [Team] IN VALUES(Team[Team]) para que hereden la misma restricción de equipo creada por el filtro UPN en la tabla de equipos; Esta es la forma más limpia y soportada de hacer que los slicers muestren solo empleados del propio equipo del usuario.
The Power BI Data Visualization World Championships is back! It's time to submit your entry.
Check out the January 2026 Power BI update to learn about new features.