Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

RLS dinámico con jerarquía

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
Usuario1AustraliaNSW141002
Usuario1AustraliaNSW141003
Usuario1Nueva ZelandaTodo121004
Usuario2AustraliaTodoTodoTodo

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()
)

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

@AMITCHANDAK,

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.

Syndicate_Admin
Administrator
Administrator

@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

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel

Fabric Monthly Update - May 2024

Check out the May 2024 Fabric update to learn about new features.

LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.