Don't miss your chance to take the Fabric Data Engineer (DP-600) exam for FREE! Find out how by attending the DP-600 session on April 23rd (pacific time), live or on-demand.
Learn moreNext 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
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.
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
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.
¡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
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
agregue un objeto visual de tabla con campos de tabla:
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.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
Experience the highlights from FabCon & SQLCon, available live and on-demand starting April 14th.