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

Next up in the FabCon + SQLCon recap series: The roadmap for Microsoft SQL and Maximizing Developer experiences in Fabric. All sessions are available on-demand after the live show. Register now

Reply
Syndicate_Admin
Administrator
Administrator

RLS con tablas condicionales

Hola, estaba ayudando a alguien podría ayudarme mientras intento implementar RLS en un modelo que he heredado.

En pocas palabras, el Usuario está en una tabla con su ID y otra columna que especifica a qué tabla hacer referencia para averiguar el Área asociada con ese Usuario. Hay 2 tablas de este tipo, que luego actúan para filtrar una tabla principal que finalmente da el Av$ asociado a esa área.

Entonces, en mi siguiente ejemplo simplificado, si el Usuario 100 está usando el modelo, saltará a 'Tabla A', identificará 'Nth' como el Área y luego filtrará Nth en la tabla principal para mostrar $ 100 como resultado final.

naninamu_0-1688470492849.png

No puedo entender cómo hacer esto.... es la parte de tener que elegir la Tabla A o la Tabla B lo que me confunde.

Si alguien puede guiarme en la dirección correcta, sería muy apreciado.

Gracias - Andrew

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

Gracias por la solución que ha proporcionado. He echado un vistazo y creo que lo entiendo, pero tenía algunas preguntas de seguimiento:

1) Me he dado cuenta de que he simplificado demasiado mi modelo. Un usuario puede aparecer en AMBAS tablas A y B, pero con diferentes áreas. Es por eso que la selección inicial de la Tabla A o B es tan importante. Creo que con su código esto sería un problema? ¿Se puede adaptar el código para manejar esto?

2) Estoy pensando que ni siquiera puedo configurar mi modelo de datos para reflejar mi situación, ya que tendrá un camino ambiguo. La única forma de evitarlo sería tener una relación inactiva (por lo que si el usuario de la tabla A está activo, el usuario de la tabla B está inactivo, que de alguna manera se activa cuando es necesario. Tengo entendido que esto no es posible lograr usando DAX en RLS. ¿Estoy en lo correcto en este entendimiento?

Gracias de antemano.

Syndicate_Admin
Administrator
Administrator

¡Muchas gracias por esto! Intentaré implementarlo (a la situación de la vida real un poco más complicada) y ver cómo vamos.

Saludos, Andrew

Syndicate_Admin
Administrator
Administrator

@naninamu ,

Intente crear un rol con la siguiente fórmula dax:

[Area] =
VAR _id =
    USERPRINCIPALNAME ()
VAR a =
    CALCULATE ( MAX ( 'User'[Table] ), CONTAINSSTRING ( 'User'[ID], _id ) )
VAR b =
    CALCULATE ( MAX ( 'Table A'[Area] ), CONTAINSSTRING ( 'Table A'[ID], _id ) )
VAR c =
    CALCULATE ( MAX ( 'Table B'[Area] ), CONTAINSSTRING ( 'Table B'[ID], _id ) )
VAR val =
    SWITCH ( a, "A", b, "B", c )
RETURN
    val

vbinbinyumsft_0-1688630499970.png

agregue un objeto visual de tabla con campos de tabla:

Animation09.gif

Consulte el archivo .pbix adjunto.

Saludos
Apoyo de la comunidad Team_Binbin Yu
Si este post Ayuda, entonces por favor considere Acéptalo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Helpful resources

Announcements
New to Fabric survey Carousel

New to Fabric Survey

If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.

FabCon and SQLCon Highlights Carousel

FabCon &SQLCon Highlights

Experience the highlights from FabCon & SQLCon, available live and on-demand starting April 14th.

March Power BI Update Carousel

Power BI Community Update - March 2026

Check out the March 2026 Power BI update to learn about new features.

Top Kudoed Authors