¿Qué es la jerarquía de roles?
Una jerarquía de roles es un término organizacional que se usa con mayor frecuencia en bases de datos y sistemas de seguridad informática. Los usuarios poseen roles crecientes que se ramifican hacia arriba como las ramas de un árbol. A medida que los usuarios del sistema son promovidos a través de estos roles. Heredan los atributos, deberes y variables relacionadas adicionales del rol que adoptan, sin perder ninguno de sus atributos de sus roles anteriores. La ventaja de esto es que permite un estándar organizacional simple para diseñar bases de datos y permisos de seguridad. Las desventajas provienen del hecho de que a menudo, los roles individuales no se mezclan perfectamente entre sí, forzando construcciones incómodas o inadecuadas en el diseño del sistema.
Imagine una bola de nieve rodando cuesta abajo. A medida que avanza, acumula más y más tamaño sin perder ninguno de sus contenidos originales. Para cuando llega al final de la colina, o al nivel más alto de la base de datos, se ha expandido mucho más allá de su tamaño original. Este es el concepto básico de una jerarquía de roles.
Por ejemplo, considere una jerarquía de roles de una base de datos de empleados. El nivel más elemental de la base de datos será la tabla Empleados, que naturalmente contiene todos los registros de cada persona que trabaja en la empresa, ya que todos son empleados. Los empleados anteriores pueden ser la tabla Administradores, que puede agregar atributos adicionales, como listas de los empleados que supervisa cada gerente. Sin embargo, la tabla Managers será naturalmente más exclusiva; ya que cada gerente es un empleado, pero no todos los empleados son gerentes. La tabla de jerarquía de roles continuará "goteando" en forma de pirámide, posiblemente agregando una tabla para Gerentes de sucursal, Gerentes corporativos, Vicepresidentes, etc.
Desde una perspectiva de seguridad, el pico de la jerarquía sería un administrador de sistema sin restricciones, que puede realizar cualquier modificación o cambio en un sistema informático. Mientras que el nivel más bajo sería un usuario simple, que solo podría acceder a un puñado de programas sin que se le permita realizar cambios sustanciales. En ambos casos, ya sea una base de datos o una situación de seguridad, el esquema de jerarquía de roles permite un "flujo ascendente" efectivo, permitiendo a los usuarios del sistema migrar de una posición a la siguiente en un formato bastante lineal.
La desventaja de esto proviene de organizaciones complejas, en las cuales los atributos de una entidad no necesariamente se mezclan suavemente en otra. Considere un caso en el que los empleados son promovidos a un puesto de gestión después de desempeñar un papel como programadores o trabajadores de recursos humanos. Suponga que las reglas de la compañía prohíben que las personas trabajen como programadores y como trabajadores de recursos humanos. Ahora, de acuerdo con la estructura jerárquica de roles, todos en la tabla Administradores deben heredar los atributos de un programador y los de alguien que trabaja en recursos humanos. Esto da como resultado un espacio desperdiciado y atributos nulos dentro de la base de datos, ya que ningún administrador individual poseerá los atributos de un programador y alguien en recursos humanos.