Seguridad de nivel de fila con tabla de control de administración

Un usuario Pregunto ✅

farhanahmed


Guión

Ha implementado la seguridad de nivel de fila para restringir a los usuarios para ver los datos en consecuencia, pero desea crear un rol de administrador dinámico que se pueda asignar a cualquier usuario para ver todos los datos y, al mismo tiempo, no desea asignar el permiso de administrador al usuario. .

Aquí está el modelo actual

FarhanAhmed_1-1603796172230.png

Tabla RLS actual

Usuario

ID de departamento

abcd@empresa.com

A

abcd@empresa.com

B

xyz@empresa.com

C

xyz@empresa.com

D

hhh@empresa.com

C

FarhanAhmed_2-1603796172232.png

Preparación de datos

Para esto, necesitas

  • Cree una tabla que tendrá información sobre los usuarios que son administradores o no.

Usuario

AdminRole

abcd@empresa.com

0

xyz@empresa.com

0

hhh@empresa.com

1

  • Ahora debe desconectar su tabla RLS actual con el modelo y crear una nueva tabla que contenga todos los departamentos para el usuario con función de administrador y mantenga a otros usuarios iguales.
UserTable =
UNION(
    SUMMARIZE(RLS,RLS[User],RLS[DeptID]),  CROSSJOIN(SUMMARIZE(FILTER(User,User[AdminRole]=1),User[User]),SUMMARIZE(Department,Department[DeptID])))

Oculte la tabla de administración y la tabla RLS del modelo y use este «UserTable” como tabla RLS para restringir a los usuarios a ver los datos apropiados

FarhanAhmed_3-1603796172235.png

Pruebas

Prueba como un usuario normal

FarhanAhmed_4-1603796172236.png

Prueba como usuario administrador

FarhanAhmed_5-1603796172238.png

Verá que ahora puede controlar a sus usuarios para convertirlos en administradores a través de la tabla de control en lugar de asignar permisos de administrador en el espacio de trabajo o en cualquier nivel.

Con suerte, esto ayudará a los desarrolladores a tener más control al asignar permisos de administrador a los usuarios sobre los datos.

Saludos

Farhan

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *