Les droits portant sur les données
Introduction
Bien que les privilèges et les groupes permettent d'accéder à certaines fonctionnalités de l'application, ces deux notions ne permettent pas de gérer l'accéssibilité à la données (lecture, saisie, modification, suppression). Cette notion là est gérée par le SGBD (Postgresql pour vMap) sur la donnée (table, vue, vue matérialisée...). Cela peut être réalisé en ligne de commande ou plus communément par l'intermédiaire d'un client de base de données (exemple : PgAdmin, Dbeaver...)
Rajouter des droits à ces éléments permet ainsi à l’utilisateur final de pouvoir réaliser des actions différentes sur une donnée dans vMap2 (consultation, saisie, édition, suppression, d’une donnée géographique et / ou attributaire).
Une mauvaise gestion, ou un oubli de ces droits pourraient entraîner l'impossibilité pour un utilisateur de visualiser, d'éditer, de saisir ou de supprimer une donnée.
Exemple
Note
Le tutoriel suivant est illustré avec le client SQL pgadmin.
Le principe est que quelque soit le client utilisé, le code SQL pour Postgresql reste le même.
Pour cet exemple, nous souhaitons qu'un utilisateur ou groupe d'utilisateurs (appartenant au groupe exploitant_ville
) puisse consulter, mettre à jour ou supprimer les données de la table data_demo_vmap
.f_villes_l93
. Pour cela voici les étapes :
1- Créer un rôle groupe (soit directement en base de données, soit via les privilèges de vMap)
2- Associer l'utilisateur à ce rôle groupe
3- Affecter les droits sur la table à ce rôle groupe
j'aimerais rajouter le privilège exploitant_ville
sur ma table data_demo_vmap
.f_villes_l93
, afin qu'un utilisateur ayant ce privilège puisse consulter, saisir/mettre à jour/supprimer les données de ma couche ville
utilisant cette table.
1- Créer un rôle groupe
Note
Le fonctionnement et la création d'un privilège sont expliqués dans la section suivante.
2- Associer l'utilisateur à ce rôle groupe
Note
La gestion d'un utilisateur ainsi que ses droits sont expliqués dans la section suivante.
3- Affecter les droits sur la table à ce rôle groupe
Pour ajouter des droits sur une table, il faut tout d'abord ouvrir un client de base de données (exemple pgAdmin) et se connecter à la base de données.
Une fois connecté, naviguer dans la base via le menu latéral jusqu'à trouver la table concernée :
Clic droit > Propriété, et se rendre dans l'onglet "Security" de la fenêtre qui s'ouvre.
Cliquer sur le signe "+" de la ligne "Privileges", sélectionner exploitant_ville
dans la colonne Grantee
afin de donner des droits au rôle groupe (et donc à l'ensemble des utilisateurs associés à ce rôle groupe) sur la table data_demo_vmap
.f_villes_l93
.
Note
Il est possible d'ajouter des droits pour un utilisateur simple ou un groupe d'utilisateur.
Sélectionner les droits SELECT
, INSERT
, UPDATE
et DELETE
dans la colonne Privilèges
pour donner les droits en consultation, création, mise à jour et suppression. Enregistrer.
Gérer les droits en SQL
Il est également possible d'atteindre le même résultat en SQL en utilisant l'éditeur de requêtes, par exemple via le bouton Query Tool
sur pgadmin:
La requête serait la suivante :
GRANT SELECT, INSERT, UPDATE, DELETE ON data_demo_vmap.f_villes_l93 TO exploitant_ville;