Forum Discussion
Complexity RLS - ¡Ayuda, por favor!
¡Muchas gracias! He visto algo de contenido sobre RLS dinámico, pero como nunca he trabajado con él antes, todavía tengo muchas preguntas... Una de ellas es, por ejemplo, si este gestor puede ver 25 centros de costes, ¿debería crear 25 filas en la tabla para este gestor? Por ejemplo:
[email protected] | Centro de Costes 1
[email protected] | Centro de Costes 2
[email protected] | Centro de Costes 3
¿Y así sucesivamente?
Y en casos en los que, por ejemplo, quería "ocultar" la información en una columna de UNA TABLA para esta regla:
[email protected] | Centro de Costes 2
la tabla de transacciones, por ejemplo, quiero ocultar la información para el proveedor 3...
¿Cómo podría hacerlo? Esto me resulta muy confuso. ¿Debería manejar esto en la propia tabla o debería hacerlo de forma más "detallada" dentro de Power BI?
Así que vamos a hacer preguntas una por 😅❤️ una
Primera pregunta
Si este gestor puede ver 25 centros de costes, ¿deberías crear 25 filas en la tabla para este gestor?
- Así que sí, exactamente crea 25 filas separadas exactamente así:
| NombrePrincipalUsuarioPrincipal | CostCenter |
| [email protected] | CC01 |
| [email protected] | CC02 |
| [email protected] | CC03 |
| [email protected] | hasta alcanzar el máximo (25) |
Segunda pregunta
¿Cuál es la regla RLS para esta estructura?
- Solo una regla sencilla en tu tabla de seguridad:
[UserPrincipalName] = USERPRINCIPALNAME()
Tercera pregunta
¿Cómo oculto a un proveedor en UNA sola tabla?
- Así que para esta pregunta hay dos enfoques que podrías probar (los más cómodos para ti)\
- La primera es añadir columnas de restricción a tu tabla principal de seguridad:
| NombrePrincipalUsuarioPrincipal | CostCenter | Proveedor Restringido |
| [email protected] | CC02 | Supplier3 |
Y la regla RLS para esto:
AND(
[CostCenter] IN VALUES(SecurityTable[CostCenter]),
NOT([Supplier] IN VALUES(SecurityTable[RestrictedSupplier]))
)- La segunda es crear tablas dedicadas para diferentes tipos de restricciones:
| NombrePrincipalUsuarioPrincipal | Proveedor Restringido |
| [email protected] | Supplier3 |
Y la regla RLS para esta tabla es:
// Main cost center access
[CostCenter] IN VALUES(UserCostCenterAccess[CostCenter])
// Supplier restrictions
NOT([Supplier] IN VALUES(UserSupplierRestrictions[RestrictedSupplier]))
Finalmente
Siempre deberías manejar esto en las tablas RLS (no dentro de los gráficos de Power BI ni en DAX complejos).