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

Get certified in Microsoft Fabric—for free! For a limited time, get a free DP-600 exam voucher to use by the end of 2024. Register now

Reply
andrea_chiappo
Helper III
Helper III

RLS con USERELATIONSHIPS por todas partes

Hola expertos en Power BI,

NUEVA VERSIÓN

El origen de datos de mi archivo de Power BI son libros de Excel, uno para cada cliente de la empresa para el que trabajo.

Construí varias páginas de informe, donde todos los objetos visuales están controlados por tres segmentaciones principales, que se repiten en todas las páginas:

- nombre del cliente (tomado de una tabla DimCustomers)

- roles de empleados (también tomados de Los DimCustomers)

- fecha (tomar de la tabla CalendarDimUser)

Cuando no se define ningún rol, los informes se ven así

Annotation 2020-05-19 141831.jpg

Los objetos visuales (tanto en esta página como en otros) se basan en las columnas Medidas y Calculado, utilizando todo tipo de funciones DAX

(USERELATIONSHIP, CALCULATE, ALLEXCEPT, DISTINCTCOUNT, COUNTROWS, etc.)

La razón para continuar de esta manera era crear un modelo único de Power BI, adecuado para todos los clientes y, a continuación, definir roles para el nivel de servicio de Power BI. De esta manera, puedo controlar lo que cada cliente ve (por ejemplo, el responsable de Company Inc. que recibirá el enlace al panel, solo verá datos de Company Inc. y así sucesivamente para todos los clientes).

Para lograr esto, creé una tabla DimCustomerPermissions de la siguiente manera

Annotation 2020-05-19 143900.jpg

(las tres direcciones de correo electrónico son de empleados internos y se refieren a empresas cliente simuladas, destinadas sólo a probar todo)

A continuación, creé el rol para uno de estos tres y asigné la dirección de correo electrónico correspondiente, con el siguiente RLS:

Annotation 2020-05-19 145842.jpg

este formato sólo está destinado a probar el enfoque.

En el caso real, reemplazaría el correo electrónico explícito por USERPRINCIPALNAME()

Sin embargo, esto es lo que obtengo cuando intento ver el informe como el rol que acaba de crear

Todo se desmorona.

Sorprendentemente, del mensaje de error esto parece ser una limitación de Power BI, en lugar de un error (pero es muy posible que me equivoque)

Annotation 2020-05-19 145447.jpg

Teniendo en cuenta todo esto, ¿cree que lo que estoy haciendo es factible o el enfoque es intrínsecamente defectuoso (¿modelo único para diferentes fuentes de datos?)

6 REPLIES 6
amitchandak
Super User
Super User

@andrea_chiappo ,referir se refieren a estos pueden ayudar

https://www.blue-granite.com/blog/using-dynamic-row-level-security-with-organizational-hierarchies

https://radacad.com/dynamic-row-level-security-with-organizational-hierarchy-power-bi

Join us as experts from around the world come together to shape the future of data and AI!
At the Microsoft Analytics Community Conference, global leaders and influential voices are stepping up to share their knowledge and help you master the latest in Microsoft Fabric, Copilot, and Purview.
️ November 12th-14th, 2024
 Online Event
Register Here

Gracias @amitchandak

Sin embargo, el RLS dinámico no resuelve mi problema, ya que el problema parece estar más allá de eso

Todos los tutoriales y páginas que he encontrado casos presentes de RLS para modelos extremadamente simplificados

(simplemente mostrando parte de los datos y/o medidas/columnas que implican funciones DAX simples)

La naturaleza de mi problema parece ser una limitación fundamental, donde no se permite un DAX de alto nivel

(con CALCULATE, ALLEXCEPT, USERELATIONSHIP, etc....)

¿Hay alguna solución a esto? Gracias a todo lo que puede proporcionar un poco más de apoyo / perspicacia

Hola @andrea_chiappo ,

Cuando se utiliza la expresión dax para definir RLS en power bi desktop, la mayoría de las funciones dax están disponibles, excepto que no se puede utilizar para crear una tabla virtual becasuse RLS filtra todas las tablas de hechos.

En cuanto a no se puede utilizar funciones como calcular, no lo creo. Consulte mi siguiente expresión en la imagen utilizando la función calculate() es RLS:

RLS.png

Este rol define que cada persona puede mostrar sus propios datos en un nivel de jerarquía de administrador, archivo de ejemplo adjunto al que puede hacer referencia:

RLS expression.pbix

Mejores looks,
Yingjie Li

Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Gracias por su respuesta @v-yingjl

Me di cuenta de que no me explicaba correctamente. Modificaré la pregunta desde el principio.

Hola @andrea_chiappo ,

¿Podría considerar compartir un archivo .pbix ficticio o su expresión de rol rls que utiliza userelationship() y crossfilter() para una discusión más detallada? Tal vez se puede escribir como otra manera de evitar este error.

Mejores looks,
Yingjie Li

la expresión rls es simplemente: [email] - "employee@address.com"

Si amablemente revisa la versión de actualización del post encontrarás una explicación detallada de la situación.

No aparece USERELATIONSHIP o CROSSFILTER en la expresión rls. El problema está en el modelo y parece ser una limitación de DAX

Helpful resources

Announcements
November Carousel

Fabric Community Update - November 2024

Find out what's new and trending in the Fabric Community.

Live Sessions with Fabric DB

Be one of the first to start using Fabric Databases

Starting December 3, join live sessions with database experts and the Fabric product team to learn just how easy it is to get started.

Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early Bird pricing ends December 9th.

Nov PBI Update Carousel

Power BI Monthly Update - November 2024

Check out the November 2024 Power BI update to learn about new features.

Top Solution Authors
Top Kudoed Authors