Forum Discussion
Dimensiones adicionales de filtrado RLS
- 8 months ago
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
- Syndicate_Admin8 months agoAdministrator
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.