¿Seguridad de nivel de fila sin relación?

Un usuario Pregunto ✅

Anónimo

Así que estoy tratando de implementar RLS dinámico desde hace días, estoy perdiendo la cabeza 🙂

. He leído todos los artículos de Radcad al respecto, pero sigo atascado en un punto. ¿Cómo implementa una tabla de usuario que define el nivel de seguridad cuando no tiene una sola columna (sino varias) en la que puede definir una relación en la tabla de hechos?

Tengo una tabla que determina los roles de seguridad, donde una sola dirección de correo electrónico puede tener acceso a varios CC-Names (ver Ian@example.nl) y un solo CC-Name puede tener múltiples direcciones de correo electrónico (ver Consulting CI)

CC-Nombre IDENTIFICACIÓN Identificación de los padres Correo electrónico
Consultoría IC 1 2 Ian@ejemplo.nl
Asesoría Consultoría 2 3 Pedro@ejemplo.nl
Consultivo 3 4 Chris@ejemplo.nl
Total Consultivo 4 5 Sara@ejemplo.nl
CIMA 5 Zoe@ejemplo.nl
Consultoría PD 6 2 Ian@ejemplo.nl
Consultoría IC 1 2 andreas@ejemplo.nl

La tabla de hechos consta de una fila para cada empleado que representa la estructura total del centro de costos al que pertenecen:

ID de empleado CCL1 CCL2 CCL3 CCL4 CCL5 Puntaje
1 Consultoría IC Asesoría Consultoría Consultivo Total Consultivo CIMA 5
2 Consultoría IC Asesoría Consultoría Consultivo Total Consultivo CIMA 5
3 Consultoría IC Asesoría Consultoría Consultivo Total Consultivo CIMA 5
4 Consultoría IC Asesoría Consultoría Consultivo Total Consultivo CIMA 52
5 Consultoría IC Asesoría Consultoría Consultivo Total Consultivo CIMA 14
6 Consultoría IC Asesoría Consultoría Consultivo Total Consultivo CIMA 17
7 Consultoría PD Asesoría Consultoría Consultivo Total Consultivo CIMA 15
8 Consultoría PD Asesoría Consultoría Consultivo Total Consultivo CIMA 19


Mi pregunta: ¿cómo puedo vincular esas dos tablas para crear un RLS dinámico? ¿Es eso realmente necesario, o puedo hacer algo elegante con tablas desconectadas?

¡Muchas gracias!

Mejor, Huelga88

ibarrau

Hola. RLS puede ser complicado, pero puede hacerlo. Estoy estropeando mi blog con este post porque iba a escribir sobre esto jaja.

Puede intentar agregar una regla en su tabla de hechos RLS como esta:

[EmployeeDCCL1] IN SUMMARIZE(FILTER(First_table, First_Table[Email] = USERNAME()), Fist_table[CC-Name])

Debo mostrar los cc-nombres de ese correo electrónico y comprobar con el «IN» si están en el hecho.

Además de esto, permítame advertirle que RLS debe aplicarse a la dimensión. La aplicación de rls a los hechos puede resultar en un bajo rendimiento.

Espero que esto funcione.

Anónimo

En respuesta a ibarrau

Hola @ibarrau,

Gracias por tratar de ayudarme, ¡realmente disfruto esta comunidad!

Desafortunadamente, no resolví mi problema con su solución. Vea la captura de pantalla a continuación. ¿Qué hice mal?

Huelga88_0-1592829747355.png

¿Necesito crear una relación entre las tablas?

¡Gracias por adelantado!

amichandak

@Anónimo, vi esto hace mucho tiempo. Pero recuerdo que mostraron el cálculo de venir alrededor de RLS. Compruebe si esto puede ayudar

https://community.powerbi.com/t5/MBAS-Gallery/Microsoft-Power-BI-Unleash-row-level-security-patterns-in-Power/td-p/712613

Anónimo

En respuesta a amichandak

Hola @amitchandak,

Gracias por tomarse el tiempo para volver a mí. Desafortunadamente, esto no resuelve mi problema, o me estoy perdiendo algo. Necesito ayuda para implementar esto. ¿Cómo funcionaría eso para mi situación particular?

Atentamente,

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *