Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and a 50 percent discount on exams.
Get startedEarn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Hola a todos
Tengo este requisito para implementar RLS en varias columnas. Tengo 4 tablas jerárquicas de un solo nivel llamadas País, Estado, Área, Módulo. Estas tablas no se relacionan entre sí.
Mi tabla de seguridad tiene el siguiente aspecto
UserID País Estado Módulo de área
Usuario1 | Australia | NSW | 14 | 1001 |
Usuario1 | Australia | NSW | 14 | 1002 |
Usuario1 | Australia | NSW | 14 | 1003 |
Usuario1 | Nueva Zelanda | Todo | 12 | 1004 |
Usuario2 | Australia | Todo | Todo | Todo |
Por ejemplo, con mi configuración actual de RLS, si el usuario 1 inicia sesión, tiene acceso a Australia y Nueva Zelanda, todos los estados, el área 14 y los módulos 1001 -1003. Sin embargo, necesito aplicar seguridad en un nivel fila por fila. por ejemplo, si el Usuario1 inicia sesión, debería ver Australia, NSW, 14,1001 o Australia, NSW, 14,1004 o Nueva Zelanda, Todos, 12,1004
Mi consulta DAX actual se muestra a continuación: como puede ver, no tiene en cuenta todas las columnas y las trata columna por columna. el mismo DAX se aplica a todas mis tablas de jerarquía.
¿Cómo puedo implementar RLS que devuelva true si un registro coincide con País, Estado, Área y Módulo?
Tabla de jerarquía de países:
var _Restriction =
CALCULATETABLE(
VALUES('Test Security'[País]),
'Seguridad de prueba'[ID de usuario] =USERPRINCIPALNAME()
)
Devolución
INTERRUPTOR(
TRUE(),
"Todos" en _Restriction, TRUE(),
[País] en _Restriction , TRUE(),
FALSE()
)
No creo que el video lo resuelva del todo. Su video funciona sobre la base de una tabla y una columna.
En mi escenario, necesita filtrar los datos en varias condiciones.
es decir, no debe aplicar rls en una columna a la vez. Necesito hacer algo como
El usuario1 tiene acceso a este país de la tabla 1 y a este estado de la tabla 2 y a esta área de la tabla 3 en una línea, no individual.
Si toma el siguiente ejemplo, puede aclararlo.
ID de usuario: Usuario 1, País = Australia, Estado = Nueva Gales del Sur
ID de usuario: Usuario 1, País = Nueva Zelanda, Estado = Todos
Con el método actual, el usuario 1 puede ver todos los estados de Australia y Nueva Zelanda cuando, de hecho, el usuario 1 solo debería ver NSW para Australia y toda Nueva Zelanda.
@WilliamA , he hecho una solución alternativa para manejar todo aquí, verifique si eso puede ayudar a crear su solución
Power BI: seguridad de nivel de fila (RLS): Handle ALL, UserPrincipalName: https://youtu.be/KVLEnIUo4pc