Pages: 1
- Sujet précédent - [PostgreSQL 9.6] Gestion de personnes pouvant modifier une BDD - Sujet suivant
#1 Wed 31 May 2017 12:41
- Brice Belouin
- Juste Inscrit !
- Date d'inscription: 10 May 2017
- Messages: 8
[PostgreSQL 9.6] Gestion de personnes pouvant modifier une BDD
Bonjour
Je travaille sur une base de données Postgres installée sur un serveur d'entreprise.
Les personnes utilisant la base de données (sachant que tout le monde peut la modifier) le font via Qgis sur leur ordinateur respectif (connecté au serveur).
Je voudrais faire en sorte que lorsqu'une personne se connecte à la base de données pour effectuer une quelconque modification, toutes les autres personnes ne puissent plus en effectuer. Cette restriction intervenant jusqu'à ce que la personne se déconnecte de la base.
Savez-vous comment faire ?
Merci beaucoup
Brice B
Hors ligne
#2 Wed 31 May 2017 13:07
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1538
Re: [PostgreSQL 9.6] Gestion de personnes pouvant modifier une BDD
Bonjour,
Houla, les bases de données servent justement a ce que tous les gens qui ont le droit de faire des modifs puissent le faire en mode concurrent, en //.
Ca ne me parait pas raisonnable de bloquer ce mécanisme.
Dans quel contexte voulez-vous bloquer les modifs ?
S'il s'agit de contrôler l'edition d'une meme table par plusieurs personnes, alors il vaut mieux mettre en place une procédure spéciale pour l'edition concurrente de la meme source.
Il faut mieux gérer les droits des utilisateurs pour faire cela.
Nicolas
Hors ligne
#3 Wed 31 May 2017 14:59
- Brice Belouin
- Juste Inscrit !
- Date d'inscription: 10 May 2017
- Messages: 8
Re: [PostgreSQL 9.6] Gestion de personnes pouvant modifier une BDD
D'accord
C'est un peu compliqué, les personnes ne modifient pas les tables directement mais manipulent des vues. Des règles ont été crées pour que quand une vue est modifiée, elle vienne directement modifier la table à laquelle elle se rapporte. Sur les tables, des triggers ont été programmés afin de mettre à jour certains champs automatiquement. Et si plusieurs personnes font des modifications en même temps, je me demande si ça ne va pas créer des bugs au niveau du déclenchement des triggers.
Hors ligne
#4 Wed 31 May 2017 15:11
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3175
- Site web
Re: [PostgreSQL 9.6] Gestion de personnes pouvant modifier une BDD
Bonjour,
Et si plusieurs personnes font des modifications en même temps
Loin d'être un spécialiste de cet aspect de Postgis, je pense qu'il faut faire la différence entre ce "en même temps" qui est ce que l'humain perçoit et l'accès concurrent qui est géré par la machine. Dans la réalité de la machine il n'y a jamais deux mises à jour en MEME TEMPS sur une table, et c'est justement le boulot d'un moteur de BD de gérer ça comme le dit Nicolas.
Si l'ensemble de vos opérations de mise à jour successives (celle d'un utilisateur) sont encapsulées dans une transaction il n'y aura pas de problèmes a priori.
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#5 Wed 31 May 2017 15:20
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1538
Re: [PostgreSQL 9.6] Gestion de personnes pouvant modifier une BDD
Dans ce cas, PG va gérer les opérations tout seul, sur la base "le dernier qui a parlé a raison":
La derniere transaction qui écrit dans les tables (et donc déclenche les triggers) met à jour les tables concernées.
Dans ce cas, c'est plutot au niveau des pratiques de l'outil qu'il faut en etre conscient: si deux personnes travaillent sur la meme zone/sur les memes tables, il faut qu'elles sachent ce qu'elles font, pour ne pas écraser le travail de l'autre.
Nicolas.
Hors ligne
#6 Wed 31 May 2017 15:37
- Brice Belouin
- Juste Inscrit !
- Date d'inscription: 10 May 2017
- Messages: 8
Re: [PostgreSQL 9.6] Gestion de personnes pouvant modifier une BDD
Ok très bien
Merci beaucoup !
Et, autre petite interrogation, quand on définit un rôle, on choisit d'attribuer ou non les attributs suivants :
SUPERUSER ; INHERIT ; CREATEDB ; CREATEROLE ; REPLICATION
Je ne comprend pas ce que veut dire "REPLICATION". Sur la documentation Postgres en ligne, il est mentionné "réplication en flux" mais je ne comprend ce que cela permet de faire concrètement.
Hors ligne
#7 Wed 31 May 2017 15:41
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1538
Re: [PostgreSQL 9.6] Gestion de personnes pouvant modifier une BDD
Pour aller plus loin, la doc sur les transactions dans pg: https://www.postgresql.org/docs/current … n-iso.html
(plusieurs niveaux possible d'isolement des transactions sont possibles).
La réplication, c'est la capacité d'une BD pg a se répliquer (se copier) sur d'autres instances, locales ou distantes.
PG permet beaucoup d'options de réplications (synchrone, asynchrone, multi-slave, etc.: https://www.postgresql.org/docs/9.6/sta … PLICATION)
Nicolas
Hors ligne
#8 Wed 31 May 2017 15:51
- Brice Belouin
- Juste Inscrit !
- Date d'inscription: 10 May 2017
- Messages: 8
Re: [PostgreSQL 9.6] Gestion de personnes pouvant modifier une BDD
Ok merci !
Hors ligne
Pages: 1
- Sujet précédent - [PostgreSQL 9.6] Gestion de personnes pouvant modifier une BDD - Sujet suivant