Microsoft Fabric Community Conference 2025, March 31 - April 2, Las Vegas, Nevada. Use code FABINSIDER for a $400 discount.
Register nowGet inspired! Check out the entries from the Power BI DataViz World Championships preliminary rounds and give kudos to your favorites. View the vizzies.
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:
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
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:
así que creé una nueva columna como nueva clave principal compuesta BillingAccount-BillingProfile:
¿Es una buena práctica?
¿En qué relaciones debo crear filtros RLS?
PermissionTable --> muchos a uno -->Bridge Table:
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.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code FABINSIDER for a $400 discount!
Check out the February 2025 Power BI update to learn about new features.