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

Get inspired! Check out the entries from the Power BI DataViz World Championships preliminary rounds and give kudos to your favorites. View the vizzies.

Reply
Syndicate_Admin
Administrator
Administrator

Crear relación RLS para 2 columnas en la tabla de hechos

Hola, chicos

de hecho, tengo datos de costos y quiero restringirlos en función de BillingProfileId y BillingAccountId.

Creé una tabla de permisos con User, Email, BillingAccountId, BillingProfileId e intenté conectarlos a tablas de hechos:

jaryszek_0-1738943865371.png

Existe el problema de que una relación está inactiva.
¿Cómo solucionarlo? ¿Cuál es la mejor práctica?

¿Crear 2 roles para BillingAccount y BillingProfile?
1 usuario puede tener varias cuentas de facturación y perfiles de facturación como puede ver en mi tabla de permisos (de muchos a muchos).

Por favor, ayuda,
Mejor
Jacek

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

Hola @jaryszek -Te encuentras con un problema en el que una de las relaciones entre la PermissionTable y la Fact Table está inactiva. Dado que un usuario puede tener varios BillingAccountId y BillingProfileId, y ambos campos están en la tabla de hechos, Power BI tiene dificultades para activar ambas relaciones a la vez.

Sugiera algunas prácticas recomendadas:

Dado que las relaciones de varios a varios pueden ser complicadas en Power BI, se recomienda normalizar el modelo mediante una tabla puente que contenga combinaciones únicas de BillingAccountId y BillingProfileId.

Cree una lista distinta de BillingAccountId y BillingProfileId de PermissionTable.
Cree una tabla puente a partir de esta lista.
Enlace:
Tabla puente → tabla de hechos (en BillingAccountId y BillingProfileId).
Tabla de permisos → tabla puente (en BillingAccountId y BillingProfileId).

Si su objetivo es restringir el acceso a los datos por usuario, debe usar RLS dinámico.

[correo electrónico] = USERPRINCIPALNAME()

habilite RLS.

Si debe mantener el modelo actual, puede activar la relación inactiva en sus cálculos.

Costo total =
CALCULAR(
SUM(FactTable[Costo]),
USERELATIONSHIP(PermissionTable[BillingProfileId], FactTable[BillingProfileId])
)

Gracias.

Intenté implementar sus sugerencias, pero aún existe el problema con las relaciones de muchos a muchos:

jaryszek_0-1739178267935.png
así que creé una nueva columna como nueva clave principal compuesta BillingAccount-BillingProfile:

jaryszek_1-1739178657499.png

¿Es una buena práctica?

¿En qué relaciones debo crear filtros RLS?

PermissionTable --> muchos a uno -->Bridge Table:

jaryszek_2-1739178828451.png

BridgeTable --> 1 a muchos --> Tabla de hechos

?

Gracias por su ayuda,
Mejor
Jacek



Hola, @jaryszek

Sí. La creación de una nueva clave principal compuesta, como BillingAccount-BillingProfile, puede ser una buena práctica para controlar relaciones de varios a varios en Power BI. Este enfoque ayuda a identificar de forma única cada registro y puede simplificar las relaciones entre tablas.

En el caso de los filtros de seguridad de nivel de fila (RLS), suele ser más eficaz aplicarlos en tablas de dimensiones en lugar de tablas de hechos. En su caso, debe crear los filtros RLS en PermissionTable y asegurarse de que estos filtros se propagan a través de las relaciones a la tabla puente y, a continuación, a la tabla de hechos1.

Saludos

Equipo de apoyo a la comunidad _Charlotte

Si esta publicación ayuda, considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code FABINSIDER for a $400 discount!

FebPBI_Carousel

Power BI Monthly Update - February 2025

Check out the February 2025 Power BI update to learn about new features.

March2025 Carousel

Fabric Community Update - March 2025

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

Top Solution Authors
Top Kudoed Authors