Implémentez la gestion de l'autorisation des utilisateurs dans les systèmes commerciaux
Les autorisations dans le système B / S sont plus importantes que celles en c / s. Étant donné que le système C / S a un client spécial, la détection d'autorisation des utilisateurs d'accès peut être implémentée via le client ou via la détection du client + serveur. En b / s, les navigateurs sont déjà disponibles pour chaque ordinateur. Si une détection d'autorisation complète n'est pas établie, un "utilisateur illégal" est susceptible d'accéder facilement à toutes les fonctions du système B / S via le navigateur. Par conséquent, les systèmes commerciaux B / S doivent avoir un ou plusieurs systèmes d'autorisation pour implémenter la détection d'autorisation d'accès, afin que les utilisateurs autorisés puissent utiliser des fonctions autorisées normalement et légalement, et ces "utilisateurs illégaux" non autorisés "les rejettent complètement". Voyons comment concevoir un système d'autorisation qui peut répondre au contrôle des autorisations de fonction utilisateur dans la plupart des systèmes B / S.
Énoncé des exigences
• Le personnel avec différentes responsabilités devrait avoir des autorisations différentes pour les opérations du système. Excellent système commercial, c'est la fonction la plus élémentaire.
• Vous pouvez attribuer des autorisations au groupe. Pour un système commercial d'une grande entreprise, il est long et gênant de demander aux administrateurs d'attribuer des autorisations de fonctionnement du système à leurs employés un par un. Par conséquent, le système propose le concept de fonctionnement sur des «groupes» et organise des personnes ayant des autorisations cohérentes dans le même groupe, puis attribue des autorisations au groupe.
• Le système de gestion de l'autorisation doit être extensible. Il devrait être en mesure de rejoindre n'importe quel système avec des capacités de gestion de l'autorisation. Tout comme les composants, ils peuvent être constamment réutilisés, au lieu de réaménager la partie de gestion de l'autorisation pour chaque système de gestion développé.
• Répondre aux autorisations fonctionnelles dans le système commercial. Dans les systèmes commerciaux traditionnels, il existe deux types de gestion des autorisations. L'un est la gestion des autorisations fonctionnelles, et l'autre est la gestion des autorisations de ressources. Entre différents systèmes, les autorisations fonctionnelles peuvent être réutilisées, tandis que les autorisations de ressources ne le peuvent pas.
Sur le design
Avec l'aide du concept de programmation d'action de Noahweb, au stade de conception, les concepteurs de systèmes n'ont pas besoin de considérer la conception de la structure du programme, mais commencent par le flux de programme et la structure de la base de données. Afin de réaliser les exigences, la conception de la base de données est extrêmement importante. Qu'il s'agisse du concept de fonctionnement du «groupe» ou de la réutilisabilité de l'ensemble des systèmes de gestion des autorisations réside dans la conception de la base de données.
Analysons d'abord la structure de la base de données:
Tout d'abord, la table d'action ( ci-après dénommée "Tableau d'autorisation" ), la table GorupManager ( ci-après dénommée "Tableau de groupe de gestion" ), et la table maître ( ci-après dénommée "Tableau du personnel" ), sont trois tables entités qui enregistrent les informations des "autorisations", les informations du "groupe de gestion" et les informations de "personnel". Comme indiqué dans la figure ci-dessous:
La relation entre ces trois tables est plusieurs à plusieurs. Une autorisation peut appartenir à plusieurs groupes de gestion en même temps, et un groupe de gestion peut également contenir plusieurs autorisations en même temps. De même, une personne peut appartenir à plusieurs groupes de gestion en même temps, et un groupe de gestion peut également inclure plusieurs membres du personnel en même temps. Comme indiqué dans la figure ci-dessous:
Puisqu'il existe une relation plusieurs à plusieurs entre ces trois tables, il est préférable d'utiliser les deux autres tables pour terminer l'interaction. Ces deux tables jouent un rôle de cartographie, à savoir la table "ActionGroup" (ci-après dénommée "Table de mappage d'autorisation") et la table "MasterGroup" (ci-après dénommée "Table de cartographie du personnel") . Le premier correspond à l'interaction entre le tableau d'autorisation et le tableau des groupes de gestion. Ce dernier correspond à l'interaction entre la table du personnel et le tableau des groupes de gestion. Comme indiqué dans la figure ci-dessous:
De plus, une table est également nécessaire pour contrôler la colonne d'autorisation dans le menu de gauche de l'heure d'exécution du système, c'est-à-dire la "table de colonne d'autorisation", comme indiqué dans la figure ci-dessous:
Sur la base de l'analyse ci-dessus, nous effectuons la conception de la structure de la base de données, comme le montre la figure ci-dessous:
Cliquez ici pour afficher la conception du champ de données du système de gestion des permis de gestion des permis
Afin d'effectuer une bonne analyse, nous avons divisé le graphique de structure de la base de données. Le rôle des trois tables entités est déjà très clair. Voyons maintenant le rôle des deux tables de cartographie.
Un tableau de mappage d'autorisation est illustré ci-dessous:
Tout d'abord, jetons un coup d'œil à l'association sur le terrain entre la table de mappage d'autorisation et le tableau des groupes de gestion et le tableau d'autorisation .
En regardant le cercle rouge sur l'image, regardez d'abord l'association du champ Gorupid. Les performances de cette méthode d'association dans la base de données réelles sont les suivantes:
Comme le montre la figure, le groupe GroupID de "Super Administrator" dans le tableau des groupes de gestion est 1, donc l'autorisation avec GroupID de 1 dans le tableau de mappage d'autorisation est que l'autorisation appartient au "Super Administrateur".
Utilisez GroupID Field Association pour savoir quelles autorisations un groupe de gestion peut exécuter. Cependant, les informations détaillées de ces autorisations se trouvent dans l'action Action Field Association.
Le comportement du champ d'action dans la base de données est le suivant:
Ce n'est que par cette association que les informations détaillées de ces autorisations dans le tableau de mappage d'autorisation sont trouvées. En résumé, nous savons quelles autorisations Un groupe de gestion peut exécuter et quels sont les détails de ces autorisations.
Peut-être que vous demanderez, pourquoi ne pas utiliser le champ ActionId pour s'associer? parce que:
• Le champ ID dans le tableau d'autorisation peut changer après plusieurs opérations de base de données.
• Le tableau des cartes d'autorisations enregistre uniquement les autorisations qu'un groupe de gestion peut exécuter.
• Une fois que l'ID dans le tableau d'autorisation change, les enregistrements dans le tableau de carte d'autorisation changent également.
• Il y aura une erreur dans les autorisations qu'un groupe administratif peut exécuter, ce qui est très indésirable.
Compte tenu de la situation ci-dessus, le champ d'action doit être associé parce que:
• Dans le tableau d'autorisation, l'ID peut changer, mais le champ d'action ne peut en aucun cas changer.
• Les champs d'action enregistrés dans le tableau de carte d'autorisation ne changent pas.
• Il n'y aura pas d'erreurs dans les autorisations qu'un groupe administratif peut exécuter.
La table de cartographie à deux personnes est la suivante:
Apprenons l'association sur le terrain entre la table de cartographie du personnel , le tableau des groupes de gestion et le tableau du personnel , comme indiqué dans la figure ci-dessous:
En regardant la partie du cercle rouge de l'image, regardez d'abord la GroupId Field Association. Cette méthode d'association fonctionne dans la base de données comme indiqué dans la figure ci-dessous:
Comme le montre la figure, le groupe GroupID du groupe "Super Administrator" est 1. Examinons la table de mappage du personnel . L'administrateur appartient au groupe Super Administrator, tandis que l'administrateur appartient au groupe Super Administrateur et appartient également au groupe Administrateur.
Cette méthode d'association est utilisée pour découvrir qui fait partie d'un groupe de gestion. Comme ci-dessus, les informations détaillées d'une personne sont interrogées par association avec le champ ID (le champ MasterId dans le tableau de mappage du personnel ).
Le champ ID (champ MasterId dans la table de mappage du personnel ) est lié à la base de données comme indiqué dans la figure ci-dessous:
Une personne peut appartenir à plusieurs «groupes de gestion» en même temps. Comme le montre la figure, l'administrateur appartient à deux "groupes de gestion" en même temps. Par conséquent, il y aura deux enregistrements sur les administrateurs dans le tableau de cartographie du personnel .
Ce n'est que de cette manière que nous pouvons interroger les informations détaillées du personnel du groupe de gestion. Ce n'est qu'en le combinant que nous pouvons savoir qui se trouve dans un groupe de gestion et les informations détaillées de ce personnel.
En combinant le tableau d'autorisation et le tableau de mappage d'autorisation mentionné ci-dessus, l'opération de "groupe" dans les exigences est réalisée, comme le montre la figure ci-dessous:
En fait, le tableau du groupe de gestion enregistre uniquement les informations de base du groupe, telles que le nom, le groupe ID, etc. Quant aux détails des personnes d'un groupe, ainsi que les détails des autorisations que le groupe peut exécuter, ils sont enregistrés dans le tableau du personnel et le tableau d'autorisation . Seules les deux tables de cartographie enregistrent vraiment les gens d'un groupe et quelles autorisations peuvent être exécutées. Ce n'est qu'à travers la connexion de deux tables de mappage que l'interaction entre les trois tables d'entités peut être réalisée, terminant ainsi l'opération de "groupe" mentionnée dans les exigences .
Jetons un coup d'œil à l'interaction entre la table de colonne d'autorisation et la table d'autorisation . Les champs entre ces deux tables sont les suivants:
Les deux tables utilisent le champ ActionColumnId pour être associé. La méthode relationnelle dans la base de données est indiquée dans la figure ci-dessous:
Comme le montre la figure, grâce à cette méthode d'association, nous pouvons clairement voir à quelle colonne les autorisations dans le tableau d'autorisation appartiennent.
Désormais, la structure de la base de données est très claire et la fonction de l'attribution des autorisations et des opérations de "groupe" ont été implémentées. Analyons les problèmes de réutilisabilité des systèmes de gestion des autorisations mentionnés dans les exigences.
Pourquoi un système construit à l'aide de cette méthode de conception de base de données peut-il être réutilisé?
Trois éléments décisifs du système sont enregistrés dans les trois tables entités. "Autorisations", "groupes" et "peuple". Ces trois éléments peuvent être ajoutés à volonté sans être affectés les uns par les autres. Quel que soit le type de système commercial, ces trois éléments décisifs ne changeront pas, ce qui signifie que la structure ne changera pas, mais seules les données changeront.
La relation entre les trois éléments est enregistrée dans les deux tables de cartographie. Mais ces relations sont complètement créées par l'homme. Lorsque des modifications sont nécessaires, ils ne fonctionnent que sur les enregistrements de la base de données sans modifier la structure.
La table de colonne d'autorisation enregistre les colonnes affichées lorsque le système est utilisé . Que vous souhaitiez ajouter des colonnes, modifier les colonnes ou réduire les colonnes, ce n'est qu'un enregistrement d'opération.
Pour résumer, le système peut être complètement réutilisé en concevant une base de données de cette manière et peut résister au test de "changement".
Résumer:
La clé de ce système est que les trois tables physiques saisissent fermement les composants centraux du système, et les deux tables de cartographie mappent parfaitement l'interaction entre les trois tables physiques. La difficulté réside dans la compréhension du travail du tableau de cartographie, qui enregistre la relation et met en œuvre le concept de fonctionnement du «groupe». La conception globale du système consiste à respecter les paramètres d'autorisation fonctionnelle de différents systèmes en «réutilisant» dans différents systèmes MIS.
appendice:
CONCEPTION DE CONCEPTION DU TABLEAU DE DONNÉES SYSTÈME DE GESTION DE PERMISSION
Jetons un coup d'œil à la conception de la table de base de données du système de gestion des autorisations, qui est divisée en six tables, comme indiqué sur la figure ci-dessous:
Tableau d'action:
Le tableau d'action enregistre toutes les actions du système et la description liée à l'action.
Tableau d'actionColumn:
La table ActionColumn enregistre la colonne d'action. Lorsque le système est en cours d'exécution, la barre de menu de gauche offre plusieurs fonctions différentes. Chaque bloc est une colonne. Chaque colonne est ajoutée, un enregistrement dans le tableau sera ajouté. De même, une nouvelle colonne sera ajoutée à la barre de menu de gauche.
Tableau de groupe d'action:
Le tableau ActionGroup enregistre le groupe où se trouve l'action.
Tableau GroupManager:
Le tableau GroupManager enregistre les informations pertinentes sur le groupe de gestion. Pour chaque groupe de gestion ajouté, un enregistrement sera ajouté ici.
Tableau MasterGroup:
La table MasterGroup enregistre le groupe de gestion où se trouve l'administrateur. Étant donné qu'un administrateur peut appartenir à plusieurs groupes en même temps, il peut y avoir plusieurs enregistrements sur un administrateur dans le tableau.
Table maître:
Le tableau principal enregistre les informations de tous les administrateurs. Pour chaque administrateur ajouté, le tableau ajoutera un enregistrement.
La conception de gestion des autorisations générales ci-dessus (recommandée) en Java est tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.