Quelle est la hiérarchie des rôles?
Une hiérarchie de rôles est un terme organisationnel le plus souvent utilisé dans les bases de données et les systèmes de sécurité informatique. Les utilisateurs possèdent des rôles croissants qui se ramifient vers le haut, comme les branches d'un arbre. En tant qu'utilisateurs du système, ces rôles sont promus. Ils héritent des attributs, des tâches et des variables connexes supplémentaires du rôle qu'ils assument, sans perdre aucun de leurs attributs de leurs rôles précédents. L’avantage de cela est qu’il permet de créer une norme d’organisation simple pour la conception de bases de données et d’autorisations de sécurité. Les inconvénients proviennent du fait que, souvent, les rôles individuels ne se mêlent pas parfaitement les uns aux autres, ce qui impose des constructions délicates ou inappropriées dans la conception du système.
Imaginez une boule de neige en descente. Au fur et à mesure de sa progression, il accumule de plus en plus de taille sans rien perdre de son contenu original. Au moment où il atteint le bas de la colline, ou le niveau supérieur de la base de données, il a dépassé de loin sa taille initiale. C'est le concept de base d'une hiérarchie de rôles.
Par exemple, considérons une hiérarchie de rôles d'une base de données d'employés. Le niveau le plus élémentaire de la base de données sera la table Employees, qui contient naturellement tous les enregistrements de chaque personne travaillant dans l'entreprise, car ils sont tous des employés. Employés supérieurs peut être la table Gestionnaires, qui peut ajouter des attributs supplémentaires, tels que des listes d’employés supervisés par chaque responsable. La table des gestionnaires sera naturellement plus exclusive, cependant; comme chaque manager est un employé, mais tous les employés ne sont pas un manager. La table de hiérarchie des rôles continuera à "s'épanouir" sous la forme d'une pyramide, en ajoutant éventuellement une table pour les responsables de branche, les responsables d'entreprise, les vice-présidents, etc.
Du point de vue de la sécurité, le sommet de la hiérarchie serait un administrateur système illimité, qui peut effectuer toute modification ou tout changement sur un système informatique. Tandis que le niveau le plus bas serait un simple utilisateur, qui ne pourrait peut-être accéder qu’à une poignée de programmes sans être autorisé à apporter des modifications substantielles. Dans les deux cas - qu’il s’agisse d’une base de données ou d’une situation de sécurité - le schéma de hiérarchie des rôles permet un «saignement ascendant» efficace, permettant aux utilisateurs du système de migrer d’un poste à un autre dans un format relativement linéaire.
L'inconvénient de cette situation provient d'organisations complexes, dans lesquelles les attributs d'une entité ne se fondent pas forcément dans une autre. Prenons un cas où des employés sont promus à un poste de direction après avoir occupé un rôle de programmeur ou de préposé aux ressources humaines. Supposons que les règles de l'entreprise interdisent aux individus de travailler à la fois en tant que programmeurs et travailleurs en ressources humaines. Désormais, selon la structure hiérarchique des rôles, tous les utilisateurs de la table Managers doivent hériter des attributs d'un programmeur et de ceux d'une personne travaillant dans les ressources humaines. Cela entraîne une perte d'espace et d'attributs nuls dans la base de données, car aucun gestionnaire ne possédera à la fois les attributs d'un programmeur et d'un responsable des ressources humaines.