Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#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: 1536

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: 3169
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: 1536

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: 1536

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

 

Pied de page des forums

Powered by FluxBB