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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 11 January 2018 14:43

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

PostgreSQL/PostGis : réplication, publication : quelle méthode ?

Aloha

Si vous êtes l'heureux, l'heureuse, administrateur-trice d'un SIG avec une architecture séparée en base(s) de production, base(s) de publication Pg, j'ai une question simple :
- comment procédez-vous pour publier les données (schémas, tables, droits,...) dans votre base de données de publication ?

La procédure, la technique, je suis preneur de tout élément de réflexion ou d'expérience.

D'avance, merci


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

#2 Thu 11 January 2018 15:17

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: PostgreSQL/PostGis : réplication, publication : quelle méthode ?

Bonjour,

Code:

pg_dump -p prod_port -h prod -n schema1 -n schema2 -n ... bd_prod | psql -h publi -p publi_port bd_publi

wink

L'organisation en schémas permet de bien séparer les choses, de préparer avant copie vers la publication par exemple.
C'est tres simple et direct en ligne de commande, avec pg_dump et psql (ou en passant par une archive en cas de tres gros volumes ou réseau très lent)

Nicolas

Hors ligne

 

#3 Fri 12 January 2018 09:48

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: PostgreSQL/PostGis : réplication, publication : quelle méthode ?

Aloha

Question sans doute idiote : par schéma, on entend bien tous les objets du schéma (fonction, trigger, table, vue,...). Mais quid des droits ? Si l'on crée un nouveau rôle de connexion dans la base de prod, peut-on le publier dans la base de publ ? Comment se comporterait une table sur laquelle des droits sont donnés au rôle A, non publié dans la base de publ ?

Autre question : on souhaite huiler au maximum la procédure : i.e. quand un utilisateur expérimenté estime que le schéma de ses données en prod doit être publié, on souhaite qu'il puisse aisément commander cette publication. Comment le faites-vous ? Comment le feriez-vous ? Sans que cela n'alourdisse plus que de raison le plan de charge des administrateurs.

Merci encore pour cette piste, en tous les cas.


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

#4 Fri 12 January 2018 10:00

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3197
Site web

Re: PostgreSQL/PostGis : réplication, publication : quelle méthode ?

Bonjour,

Mais quid des droits ? Si l'on crée un nouveau rôle de connexion dans la base de prod, peut-on le publier dans la base de publ ? Comment se comporterait une table sur laquelle des droits sont donnés au rôle A, non publié dans la base de publ ?


Sans parler de technique c'est une question de philosophie de sécurité. Même si physiquement c'est la même personne qui produit et qui consulte ce n'est pas le même rôle (au sens de l'acteur).
Pour notre part nous sommes sur Windows en poste clients, avec un Active Directory sur le réseau, nous essayons tant que faire ce peu de n'avoir qu'une seule stratégie et nous calquons sur l'AD. Et comme nous développons nos logiciels c'est souvent le possesseur du thread en cours qui a les droits. En fait le programme en cours d’exécution est la "personne" qui a les droits.

Attention ce domaine est particulièrement complexe, après une formation d'une semaine par un spécialiste (sur la sécu windows), je suis pas sur de maîtriser tous les concepts.Ce sujet doit faire l'objet d'une réflexion globale sans considérer la technique a priori.


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#5 Fri 12 January 2018 18:20

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3197
Site web

Re: PostgreSQL/PostGis : réplication, publication : quelle méthode ?

Bonjour

Je me suis peut être mal exprimé.Je pense que les rôles entre prod et publ doivent être dissociés.
Ont attribue pas de droit d'écriture (par exemple) sur une base de consultation à une personne qui a ce droit sur production, même si c'est physiquement la même personne.
prod possède sa stratégie et publ la sienne.

Et pour ce qui est de mettre de l'huile dans les rouages, l'utilisateur expérimenté produit le script SQL permettant la génération et c'est ce script qui est répliqué sur la base de pub, par un batch nocturne ou ce qu'on veut mais un process avec des droits, mais un seul process, comme cela ont cré un "sas" entre prod et pub au sacrifice de quelques heures de temps réel.

Dernière modification par ChristopheV (Fri 12 January 2018 18:28)


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#6 Sat 13 January 2018 12:15

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: PostgreSQL/PostGis : réplication, publication : quelle méthode ?

Aloha

Ma question était mal formulée. Ou mon exemple mal choisi. En effet, nous pensons effectivement à ne pas utiliser les même rôles en prod et en publ. Cependant, si l'on prend le cas d'une nouvelle application web à mettre en place, nous allons probablement tester la connexion, les rôles, dans une base prod/intégration avant de publier dans la base de prod.
Effectivement, l'écriture de script et leur passage en base de publ semblent être adaptés. Un peu de temps pour plus d'efficacité.

Cependant, reste ma seconde question :

on souhaite huiler au maximum la procédure : i.e. quand un utilisateur expérimenté estime que le schéma de ses données en prod doit être publié, on souhaite qu'il puisse aisément commander cette publication. Comment le faites-vous ? Comment le feriez-vous ? Sans que cela n'alourdisse plus que de raison le plan de charge des administrateurs.


Le moissonnage d'un tableur contenant les demandes de publication des "administrateurs métier" par un script pour générer les scripts de publication des schémas est-elle une solution que vous avez envisagé ? Mis en place ? Quelle techno utilisez-vous ?

Je met de côté la réflexion architecture qui est bien avancée chez nous, de même que celles des rôles de chacun. Nous sommes dans le flou sur les technos à utiliser pour répondre à notre besoin.

Cordialement


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

#7 Mon 15 January 2018 15:11

xav
Participant assidu
Date d'inscription: 27 Oct 2005
Messages: 280

Re: PostgreSQL/PostGis : réplication, publication : quelle méthode ?

Bonjour,
je ne suis pas dans un cas avec 2 serveur PG mais j'ai mis en place un peu le même système (Production/Diffusion) mais entre schéma d'une même base.
Dans la plupart des cas, ce sont que les données que je met à jour en automatique (si la structure change, il faut intervenir dans les outils métiers).
Pour cela j'utilise FME pour transférer (et contrôle voir modifier) les données. Nous disposons également de GTF (de veremes) pour mettre directement ces traitements en accès aux producteurs de données.
Je travail actuellement sur la mise à jour automatique du pci-vcecteur depuis qu'il est publié en Opendata. J'utilise à peut près ce type de fonctionnement (intégration dans un schéma de maj puis transfère vers le schéma de diffusion), pour la question des droits, je lis les droits appliqués sur le schéma et les  tables de diffusion sous postgres via la table INFORMATION_SCHEMA.TABLE_PRIVILEGES puis je les ré applique sur le schéma de maj (comme ça pas d'intervention manuelle dans le script en cas d'ajout de droits).
Si ça peu vous aider dans votre cas.

Bonne journée


Xavier Lang
Information géographique et observatoire - DSI Communautaire
Cap Atlantique

Hors ligne

 

Pied de page des forums

Powered by FluxBB