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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Seguridad de nivel de fila para ocultar datos confidenciales en la tabla de hechos

Hola a todos

Me enfrento a un problema al implementar RLS para proteger los datos confidenciales en mi tabla de hechos.
A continuación se muestra el diagrama de mi modelo de datos:

alexa_0028_1-1628719943095.png

Actualmente, puedo proteger mi importe de ventas de medida mediante DAX a nivel de servicio. Como un usuario con condiciones de omisión no puede ver el valor.
M_Sales_Amount = If(COUNTROWS(FILTER(omit_country, omit_country [measure_group]="Sale" && omit_country [mail]=USERPRINCIPALNAME()))>0 || COUNTROWS(FILTER(omit_product, omit_product[measure_group]="Precio" &&omit_country [mail]=USERPRINCIPALNAME()))>0 ,Blank(),Sum(sales_amount))

Pero, hay un problema cuando el usuario final abre el modelo en el escritorio pbi, puede ver la columna sales_amount que compone la medida, incluso si está oculto y esto viola la seguridad.

Por lo tanto, actualicé mis roles y agregué filtros adicionales de la M_table como a continuación:

alexa_0028_2-1628720025038.png

Esto funciona a veces, pero si hay escenarios en los que un usuario puede ser omit_country y omit_product ambos pero con el mismo measure_group eso no funciona.
¿Puede alguien por favor ayudarme aquí cómo puedo lograr esto? Estoy realmente atascado aquí y agradecería un poco de ayuda por favor.







2 ACCEPTED SOLUTIONS

Si sus usuarios son editores o colaboradores, podrán acceder a él. No hay seguridad de nivel de columna en Power BI.

Veo que está confiando en relaciones de varios a varios y esto podría ayudarnos con una solución indirecta dependiendo del tamaño de sus datos.

Si su M_table no es tan grande en tamaño, puede duplicarlo en Power Query después de quitar los valores de su cantidad de ventas... haz que sea ceros y agrega una nueva columna digamos SecurityApplied=1.

Agregue la misma columna a la tabla original con el valor 0 (SecurityApplied=0) y, a continuación, anexe la nueva tabla a la original.

En los roles de seguridad, debe filtrar la tabla anexada para que todos los usuarios tengan SecurityApplied 1 o 0 para evitar la duplicación de otros valores para los usuarios con privilegios más altos.

m_refaei_1-1628761327337.png

View solution in original post

Estoy de acuerdo con @m_refaei aquí: RLS y OLS está destinado a ser creado en PBI Desktop (bueno, OLS necesita editor tabular, pero es factible) y aplicado en PBI Service. Con OLS ahora es posible ocultar columnas. En segundo lugar, no veo la necesidad de implementar RLS en el nivel de medida- generalmente desea mantener sus medidas limpias. Recomendaría comenzar con el siguiente enlace y ajustar su enfoque:
Configuración de seguridad de nivel de fila en Power BI Desktop - RADACAD

Reza también tiene un gran libro dedicado específicamente a RLS:
https://www.amazon.com/Row-Level-Security-Power-BI-different-ebook/dp/B082SFR2J4

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

¿Ha intentado ocultar la columna en esta tabla? Los usuarios solo pueden confiar en la medida.

Probablemente esta es la mejor opción ya que no desea filtrar el M_table.

Hola @m_refaei ,
Ocultar la columna en la tabla no la ocultará completamente al usuario final. Ya que todavía pueden usar las columnas ocultas para crear medidas y ver datos confidenciales.

Si sus usuarios son editores o colaboradores, podrán acceder a él. No hay seguridad de nivel de columna en Power BI.

Veo que está confiando en relaciones de varios a varios y esto podría ayudarnos con una solución indirecta dependiendo del tamaño de sus datos.

Si su M_table no es tan grande en tamaño, puede duplicarlo en Power Query después de quitar los valores de su cantidad de ventas... haz que sea ceros y agrega una nueva columna digamos SecurityApplied=1.

Agregue la misma columna a la tabla original con el valor 0 (SecurityApplied=0) y, a continuación, anexe la nueva tabla a la original.

En los roles de seguridad, debe filtrar la tabla anexada para que todos los usuarios tengan SecurityApplied 1 o 0 para evitar la duplicación de otros valores para los usuarios con privilegios más altos.

m_refaei_1-1628761327337.png

Estoy de acuerdo con @m_refaei aquí: RLS y OLS está destinado a ser creado en PBI Desktop (bueno, OLS necesita editor tabular, pero es factible) y aplicado en PBI Service. Con OLS ahora es posible ocultar columnas. En segundo lugar, no veo la necesidad de implementar RLS en el nivel de medida- generalmente desea mantener sus medidas limpias. Recomendaría comenzar con el siguiente enlace y ajustar su enfoque:
Configuración de seguridad de nivel de fila en Power BI Desktop - RADACAD

Reza también tiene un gran libro dedicado específicamente a RLS:
https://www.amazon.com/Row-Level-Security-Power-BI-different-ebook/dp/B082SFR2J4

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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

April Fabric Community Update

Fabric Community Update - April 2024

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