Forum Discussion
Complexity RLS - ¡Ayuda, por favor!
@Ahmed-Elfeel Muchísimas gracias por tu ayuda, las cosas empiezan a aclararse... ¿podrías ayudarme a pensar en cómo crearía esta regla?
¿Cómo crearía este RLS dinámico... La persona solo puede ver estos coli-codcusto (tabla dcentrodecusto (tabla diensao)) [COLI-CODCUSTO] == "1-1.000010" || [COLI-CODCUSTO] == "2-1.000012"
en la tabla de Dfornecedor, esta regla [CODCFO] <> "0009789"
en la tabla de dMedContratos (tabla de dimensiones), esta regla [Contrato] == "" (es decir, no quiero que aparezca nada de esta tabla)
en la tabla fAjusteGerencial (tabla de hechos), esta regla VAR TI = RELATED(dCentrodeCusto[NOME]) IN {"TECNOLOGIA DA INFORMAÇÃO"} VAR ContaValida = NOT ( [Conta] IN { "Salários E Ordenados", "Hora Extra", "Encargos Trabalhistas", "Rescisões E Indenizações", "Prêmios E Bonificações" } ) RETURN (TI & ContaValida)
en la tabla fBalance (tabla de hechos), esta regla VAR TI = RELACIONADO(dCentrodeCusto[NOME]) EN {"INFORMATION TECHNOLOGY"} VAR ValidAccount = NOT ( RELATED('dC Account'[Cuentas de Gestión]) IN { "Salarios y Salarios", "Horas Extra", "Cargos Laborales", "Despidos y Compensaciones", "Bonificaciones y Bonificaciones" } ) VAR Initial Excharge = NOT ( fBalance Sheet[COMPLEMENT2] = {"JOAO DA SILVA"} ) DECLARACIÓN (IT & & ValidAccount & Initial Gastense)
en la tabla de fMedidas (tabla de hechos), esta regla [CODCCUSTO] <> "" en la tabla fPartida (tabla de hechos), esta regla [IDPARTIDA] == "195X195X195" (es decir, no quiero que vea nada)
en la tabla fpitempartida (tabla de hechos), esta regla [CHAPA] == "195X195X195" (es decir, no quiero que vea nada)
en En la tabla 'ftmovitens' (tabla de hechos), esta regla: 'VAR TI = RELATED(dCentrodeCusto[NOME]) IN {"TECNOLOGIA DA INFORMAÇÃO"} VAR ContaValida = NOT ( RELATED('dC Conta'[Contas Gerenciais]) IN { "Salários E Ordenados", "Hora Extra", "Encargos Trabalhistas", "Rescisões E Indenizações", "Prêmios E Bonificações" } ) RETURN (TI & & ContaValida)' Bonus" } ) RETURN (TI & ContaValida)
y en la tabla fvalorçado (tabla de hechos), esta regla VAR TI = RELATED(dCentrodeCusto[NOME]) IN {"INFORMATION TECHNOLOGY"} VAR ContaValida = NOT ( [Conta] IN { "Salarios y Sueldos", "Horas Extra", "Cargos Laborales", "Despidos y Compensaciones", "Bonos y Bonificaciones" } ) RETORNO (TI & & ContaValida)
- Syndicate_Admin9 months ago
Administrator
Por supuesto, aquí tienes una solución sencilla y clara paso a paso que puedes hacer:
El primer paso es crear una tabla de seguridad llamada UserSecurity con todos los permisos de usuario así:UserEmail CostCenter [email protected] CC01 [email protected] CC02 Hasta que llegues al final (25) etcetera Segundo Paso es poner reglas RLS para cada tabla
- dCentrodeCusto (dimensión):
[COLI-CODCUSTO] IN VALUES(UserSecurity[CostCenter])- dProveedor (dimensión):
NOT([CODCFO] IN VALUES(UserSecurity[RestrictedSupplier]))- dMedContratos (ocultar toda la mesa):
[Contrato] IN {""} // Or use FALSE() to hide everything- Ajuste fgestional (tabla de hechos):
VAR TI = RELATED(dCentrodeCusto[NOME]) = "TECNOLOGIA DA INFORMACAO" VAR ValidAccount = NOT([Conta] IN { "Salários E Ordenados", "Hora Extra", "Encargos Trabalhistas", "Rescisões E Indenizações", "Prêmios E Bonificações" }) RETURN TI && ValidAccount- fBalance (tabla de hechos):
VAR TI = RELATED(dCentrodeCusto[NOME]) = "INFORMATION TECHNOLOGY" VAR ValidAccount = NOT(RELATED('dC Account'[Management Accounts]) IN { "Salaries and Wages", "Overtime", "Labor Charges", "Terminations and Compensation", "Bonuses and Bonuses" }) VAR InitialExpense = NOT([COMPLEMENT2] = "JOAO DA SILVA") RETURN TI && ValidAccount && InitialExpense- fPartida and fpitempartida (hide everything):
FALSE() // Hides all rows- ftmovitens y fvalorcado (Usa la misma lógica que fAjusteGerencial pero adapta los nombres de las columnas)
El tercer y último paso es añadir esto a la tabla de UserSecurity:
[UserEmail] = USERPRINCIPALNAME()Espero que esto te resulte útil porque ha tardado demasiado y si necesitas ayuda, dímelo y perdón por la demora 🫡❤️