Pré. | Proc. |
Niveaux de visibilité
La fonctionnalité « Niveaux de visibilité » d' Enterprise Architect permet de restreindre l'accès à certaines sections d'un modèle. Seuls les modèles hébergés par un Pro Cloud Server peuvent utiliser cette fonctionnalité . Les niveaux de visibilité sont mis en œuvre en tirant parti de la fonctionnalité Sécurité de Niveau de Rangée incluse dans Oracle 8+ et Microsoft SQL Server 2016 (et versions ultérieures).
La Sécurité de Niveau de Rangée est une fonctionnalité de sécurité qui contrôle les lignes de données auxquelles un utilisateur de base de données peut accéder. La sécurité de base de données traditionnelle permet uniquement de contrôler les autorisations d'un utilisateur au niveau du tableau , c'est-à-dire s'il peut lire, écrire ou supprimer des données dans une table particulière. Étant donné que la fonctionnalité de sécurité Sécurité de Niveau de Rangée est implémentée par la base de données, il est impossible pour les utilisateurs de contourner la sécurité implémentée au niveau de l'application, en écrivant leurs propres scripts ou requêtes de base de données. La base de données garantit que les utilisateurs ne peuvent afficher et mettre à jour que les données auxquelles ils sont autorisés à accéder.
Étant donné que Sécurité de Niveau de Rangée est implémentée par la base de données, la plupart des configurations permettant à Enterprise Architect et au Pro Cloud Server de support sont effectuées directement dans la base de données sans qu'il soit nécessaire de modifier la base de code de l'application, ce qui signifie qu'il y a moins de risques d'erreur du point de vue de l'application.
Utilisateurs de la base de données/application
Il est important de comprendre la distinction entre les utilisateurs de base de données et les utilisateurs d'application. L'introduction indique que les niveaux de visibilité sont basés sur les autorisations des utilisateurs de base de données. Dans l'environnement Sparx Systems Pro Cloud Server , chaque gestionnaire de base de données est défini avec tous ses détails de connexion (y compris l' ID utilisateur et le mot de passe) à une base de données donnée. C'est l'utilisateur de base de données, l'utilisateur identifié dans les détails de connexion, sur lequel les niveaux de visibilité sont basés.
Ce concept ne doit pas être confondu avec les utilisateurs du modèle Enterprise Architect , c'est-à-dire l' ID utilisateur/mot de passe saisi lors de l'accès à un modèle sécurisé. Il s'agit d'un utilisateur d'application.
Note : la sécurité du modèle d' Enterprise Architect n'est pas obligatoire, alors que tous les SGBD nécessitent la définition d'un utilisateur de base de données pour accéder aux données de la base de données.
Comment ça marche
En plus de leurs autorisations normales, les utilisateurs de la base de données bénéficient d'un accès à un ou plusieurs niveaux de visibilité. Une nouvelle colonne, VIS_LVL (niveau de visibilité), est ajoutée à 24 tableaux critiques dans la base de données Enterprise Architect . Cette colonne stocke le niveau de visibilité requis pour afficher ou mettre à jour l'enregistrement correspondant.
Pour chacun des 24 tableaux , une politique de sécurité est définie qui garantit que chaque utilisateur de la base de données ne voit que les enregistrements que son niveau de visibilité attribué est autorisé à afficher.
déclencheurs de base de données sont ensuite utilisés pour maintenir la valeur des colonnes VIS_LVL dans tous tableaux pour tous les objets et éléments enfants. Par exemple, la définition du niveau de visibilité d'un Paquetage dans la fenêtre Navigateur d' Enterprise Architect mettra à jour le Paquetage sélectionné et tous ses enfants au niveau de visibilité saisi.
Note : les scripts de base fournis par Sparx Systems support 20 « niveaux » de sécurité (c'est-à-dire de 1 à 20) ; toutefois, ce niveau peut être facilement ajusté en modifiant manuellement le nombre de lignes insérées dans le tableau T_VISIBILITYLEVELS au début du script. Le niveau 0 est un cas particulier, représentant la valeur par défaut ; il implique que tous les utilisateurs de la base de données (même ceux sans niveau de visibilité attribué) peuvent afficher ou mettre à jour les enregistrements de ce niveau.
L'inconvénient
Comme pour la plupart des choses, l'activation des niveaux de visibilité entraîne un coût par rapport au même modèle sans l'activation des niveaux de visibilité. Sécurité de Niveau de Rangée visibilité dans SQL Server et Oracle impose un traitement supplémentaire au serveur de base de données à chaque fois que des données sont sélectionnées. L'impact de ce traitement supplémentaire sur les performances de la base de données est difficile à estimer, car il dépend du type et de la quantité de données sélectionnées. support des niveaux de visibilité Enterprise Architect a été conçue dans un souci d'efficacité ; cependant, les performances seront inévitablement réduites lorsque les niveaux de visibilité sont activés.