En Anjana Data, la autorización de los usuarios se basa en la asignación de roles a las personas dentro de unidades organizativas (OUs). Esta combinación determina qué acciones puede realizar cada usuario y en qué ámbitos dentro de la plataforma.
Tabla User-Ou-Roles del Panel de Configuración (Visión administrador)
La gestión de estas asignaciones se realiza a través de la tabla Users-OU-Roles, que actúa como el mecanismo central de control de permisos.
Users-OU-Roles para asignación de roles a usuarios en OUs
Estructura de la tabla Roles
Cada registro en la tabla users_ou_role define una asignación única entre un usuario, una unidad organizativa y un rol.
Los elementos que caracterizan dicha asignación son:
-
user: identificador único del usuario.-
Corresponde al campo
idde la tablaUsers.
-
-
ou: identificador único de la Unidad Organizativa.-
Corresponde al campo
idde la tablaOrganizational Unit.
-
La asignación debe realizarse en una unidad organizativa hoja, nunca en un nivel intermedio o nivel raíz. Por ejemplo, si se ha configurado la unidad “Espacio de datos/Turismo”, nunca se deben asignar roles a nivel de “·Espacio de datos”
-
role: identificador único del rol.-
Corresponde al campo
idde la tablaRoles.
-
Asignación de roles a usuarios
Asignación de roles cross
Para asignar a un usuario un rol que ha sido configurado como Cross (ver configuración de la tabla Roles) se deben seguir los siguientes pasos:
-
Pulsar el botón New en la esquina superior derecha. Esto abrirá un asistente (wizard) con los campos definidos en el apartado Estructura.
-
Completar los campos conforme a lo siguiente:
-
user: Seleccionar el identificador del usuario. Si el usuario no existe, se debe crear previamente. -
ou: Seleccionar la unidad por defecto Cross. Esta OU la crea internamente la plataforma, sin embargo, si se hubiera borrado a mano, se debe crear para autorizar a los roles cross. -
role: Seleccionar el rol de entre los roles configurados previamente. Si el rol no existe, se debe crear previamente.
-
-
Pulsar en Save para guardar el rol o en Cancel para descartar.
Asignación de roles verticales
Para asignar a un usuario un rol vertical, que no ha sido configurado como cross, (ver configuración de la tabla Roles) se deben seguir los siguientes pasos:
-
Pulsar el botón New en la esquina superior derecha. Esto abrirá un asistente (wizard) con los campos definidos en el apartado Estructura.
-
Completar los campos conforme a lo siguiente:
-
user: Seleccionar el identificador del usuario. Si el usuario no existe, se debe crear previamente. -
ou: Seleccionar la unidad organizativa hoja correspondiente. Si no existe, se debe crear previamente. -
role: Seleccionar el rol de entre los roles configurados previamente. Si el rol no existe, se debe crear previamente.
-
-
Pulsar en Save para guardar el rol o en Cancel para descartar.
Modificación de las autorizaciones
Para modificar la asignación de roles a usuarios en unidades organizativas se puede realizar eliminando un registro y creando uno nuevo.
Configuración de la autorización mediante acceso directo a la base de datos (Visión desarrollador)
La tabla de base de datos (BD) que contiene la parametría de la asignación de roles a usuarios tiene esta estructura:
|
Columna |
Tipo de dato |
Restricciones / Notas |
|---|---|---|
|
user_id |
int4 (INTEGER) |
No nulo. Clave foránea a |
|
ou_id |
int4 (INTEGER) |
No nulo. Clave foránea a |
|
rol_id |
int4 (INTEGER) |
No nulo. Clave foránea a |
|
unique_idx |
— |
Restricción UNIQUE (user_id, ou_id, rol_id). Garantiza que no existan duplicados en la combinación user–OU–rol. |
Claves foráneas
|
Columna |
Tabla referenciada |
Campo referenciado |
Descripción |
|---|---|---|---|
|
|
|
|
Valida que el usuario exista. |
|
|
|
|
Valida que la unidad organizativa exista. |
|
|
|
|
Valida que el rol exista. |
Ejemplo de configuración mediante SQL
Para definir las asignaciones de usuario a roles:
INSERT INTO zeus.user_ou_role (user_id, ou_id, rol_id) VALUES
(1,1,1),
(1,39,4),
(2,1,15),
(2,1,16),
(2,3,2);