Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
Hay expertos,
Creé en mi informe el rol Ventas basado en [UserMail] = userprincipalname(). En las últimas semanas si probaba el rol a través de "Ver como" "Otro rol" e ingresaba el correo electrónico de un vendedor específico el reporte se filtraba correctamente, actualmente en cambio las cosas parecen funcionar de manera diferente porque además del correo electrónico también tengo que seleccionar el rol para obtener el mismo resultado. Debido a este cambio, ya no puedo filtrar dinámicamente en Power BI Service.
Los pasos son:
1. Cree un nuevo rol basado en principalname(), el filtro se aplica en la tabla de dimensiones que contiene el correo y el enlace id para la tabla de hechos.
2.Pruebe el rol por
y el filtro no funciona
3. En cambio, si selecciono el cuadro Ventas y específico el Otro Usuario, el RLS funciona correctamente
4. En realidad, el RLS no funciona en Power Bi Service.
Por favor, dame algunos consejos. Gracias.
Anónimo
Hola @Burningsuit,
Muchas gracias, entendí totalmente sus indicaciones y las apliqué, pero el RLS funciona parcialmente.
RLS detecta correctamente la mayor parte del correo electrónico, sin embargo, para algunos de ellos muestra todos los datos sin aplicar el filtro. Los correos electrónicos en cuestión tienen el rol de Visor y el conjunto de roles exacto, parece que no identifica el correo electrónico correctamente de hecho la tarjeta con la fórmula userprincipalname() está con mi nombre.
Los mismos correos electrónicos que no funcionan en el servicio Power Bi se leen correctamente en Power Bi Desktop
Gracias.
Luca
Hay @LucaPennella
Si userprincipalname() se muestra como su nombre en el servicio Power BI, entonces debe ser su cuenta la que acceda a los datos y, como es su cuenta, verá todos los datos. Creo que debe tener algo que ver con su esquema (las relaciones de las tablas a las que aplica RLS) o el código DAX que está utilizando para implementar RLS. Si es simplemente"[UserMail] = userprincipalname()" y [UserMail] está en la tabla principal de "hechos", esto debería funcionar.
Estuardo
Hay @LucaPennella
En Power BI Desktop, el valor de userprincipalname() se toma de los datos de contacto del usuario que inició sesión en el equipo que ejecuta Power BI Desktop, no de la cuenta que inició sesión en Power BI Service. Si selecciona "otro usuario" en vista como roles, reemplaza esto con el valor dado, por lo que userprincipalname() = "lo que escribió en otro usuario". Pero no activa la regla que ha dado, "Ventas", por lo que debe hacer ambas cosas, ingresar un valor para "Otro usuario" Y seleccionar la regla a la que se aplica. Eso es lo que está sucediendo en Power BI Desktop.
En el servicio, userprincipalname() se toma de los detalles de la cuenta de Power BI del usuario que ha iniciado sesión.
Para aplicar RLS, debe ir a "seguridad" en el conjunto de datos y agregar el grupo o la lista de usuarios que están sujetos a RLS al rol que especificó ("Ventas" en su caso, "Asistentes" en el mío).
A continuación, puede ir a las opciones "más" (...) junto al nombre del rol para probar el rol para diferentes nombres de usuario.
Tenga en cuenta que si está haciendo esto en un área de trabajo, RLS solo se aplica a los usuarios con acceso de "visor". Los usuarios con acceso "Admin", "Member" o "Contributor" verán todos los datos, independientemente de cómo se comparta el informe con ellos.
Espero que esto ayude
Estuardo