DB Schéma d'un Accès Basé sur un Rôle de Contrôle
Je suis actuellement à l'élaboration d'un membre de l'administration pour une association locale ici et je suis élaboration du schéma de base de données pour le moment. Je voudrais le partager avec vous afin de l'améliorer et de le donner aux autres un exemple d'un Accès Basé sur un Rôle de Modèle (RBAC). J'apprécierais toute critique constructive en particulier sur les relations que j'ai utilisé entre les tables.
Lien vers highres: http://i.stack.imgur.com/WG3Vz.png
Voici le schéma:
Comment cela fonctionne:
Je suis cartographie des clients existants (en fait, les membres de l'association) à partir d'une application externe dans mon application d'administration. (les clients de la table)
L'association est structurée en Division, Lotissement, etc. (intern_structures tableau). Chaque client peut être un membre en Division multiple, des divisions, Sections, etc.
Chaque client peut avoir un ou plusieurs rôles dans de telles adhésions (divisions,...) comme Président, un Actuaire, un Trésorier, etc. et chaque rôle a certains privilèges dont le propriétaire du rôle peut s'appliquer sur les autres, dans sa Division,Subdivision,Section, etc.
Un justificatif d'identité est connecté à une certaine action d'une application. Le propriétaire de l'information d'identification peut exécuter cette action sur d'autres membres de sa portée. Il peut y avoir plusieurs "autonome" des applications, mais ils partagent tous la même authentification/autorisation du système.
Une application est structurée en Modules/Submodules/Actions, etc. Un exemple pourrait être une "informations Personnelles" et ce module contient un sous-module appelé "Image" et vous pourriez appliquer les actions "de la vue,de supprimer,de modifier" sur cette photo. Mais vous ne pouvez pas supprimer une image, à moins que la personne dont l'image que vous tentez de supprimer est dans une division/section où vous avez le rôle adéquat pour le faire.
L'intérieur et de la structure de la demande sont les deux arbres, mis en œuvre en tant que liste d'adjacence et ensemble imbriqué. La liste d'adjacence permet de garantir l'intégrité et l'ensemble imbriqué me permet de parcourir l'arborescence rapidement.
Une exception est que vous pouvez donner à quelqu'un certaines informations d'identification directement (client_credentials). C'est nécessaire si quelqu'un a besoin d'effectuer certaines actions sur quelqu'un qui n'est pas dans sa division/section.
Par conséquent, une personne peut être membre de plusieurs divsions/sections et d'obtenir des rôles multiples dans chaque division/section, il est un membre de. Je vais fusionner toutes les informations d'identification de quelqu'un à travers ses multiples rôles. Et les informations d'identification sont toujours positives, les moyens restrictive des informations d'identification ne sont pas possibles.
je pense que c'est trop compliqué pour les débutants
OriginalL'auteur sled | 2010-09-10
Vous devez vous connecter pour publier un commentaire.
Je vais donner un autre exemple d'un système RBAC j'aime vraiment. s'il vous plaît vérifier la radicore cadre de Tony Marston ici.
Je ne suis pas sûr si elle répond à tous vos besoins, mais il est quelque chose que vous pouvez comparer votre travail avec peut vous aider.
OriginalL'auteur AnaZgombic
Je ne semble pas être de voir une grande partie de la RBAC mappages, tels que:
Je ne suis pas sûr de ce que tous vos "informations d'identification" tables sont? Un justificatif d'identité normalement détient des propriétés de prouver son identité (c'est à dire: nom d'utilisateur/mot de passe). Pourquoi avez-vous des informations d'identification pour les rôles?
OriginalL'auteur Jeach