RE: PostgreSQL et triggers

From: ROS Didier <didier(dot)ros(at)edf(dot)fr>
To: "michael(at)paquier(dot)xyz" <michael(at)paquier(dot)xyz>, "guillaume(at)lelarge(dot)info" <guillaume(at)lelarge(dot)info>
Cc: "pgsql-fr-generale(at)postgresql(dot)org" <pgsql-fr-generale(at)postgresql(dot)org>
Subject: RE: PostgreSQL et triggers
Date: 2018-04-18 07:56:37
Message-ID: 41317dd1e2064b30bdef614cbb8c2154@PCYINTPEXMU001.NEOPROD.EDF.FR
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Bonjour Michael

Merci pour la réponse précise et détaillée.
J'aimerais avoir ton avis sur la nécessité d'avoir un hook pour le début et la fin d'une session dans PostgreSQL.
Un exemple concret:
Beaucoup d'entreprises utilisent un annuaire LDAP d'entreprise accessible uniquement en mode sécurisé (port 636) et en lecture seule.
Dans mon entreprise, nous l'utilisons pour stocker le nom utilisateur ainsi que les rôles applicatifs associés.
Nous réalisons des connexions aux instances PostgreSQL via l'annuaire d'entreprise et j'aimerai qu'à la connexion d'un utilisateur, un code PL/pgSQL soit exécuté réalisant les actions suivantes :
- Récupération des rôles applicatifs dans l'annuaire d'entreprise
- Octroi de ces rôles à l'utilisateur qui vient de se connecter : GRANT <role_name> to <username>
De même, lors de la déconnexion de l'utilisateur , il faudrait un code qui "revoke" les roles de cet utilisateur.

Cette fonctionnalité est importante pour la communauté PostgreSQL, pour la raison suivante :
A partir du 25 Mai 2018, une directive européenne RGPD (GDPR in English) sur la protection des données personnelles va entrer en vigueur et devra s'appliquer à toutes les entreprises faisant du commerce avec l'Europe.
En cas de non-respect de cette Directive, une amende pourra être infligée et pouvant aller jusqu'à 4% du chiffre d'affaire de l'entreprise.
Michael, penses-tu qu'il soit possible de prendre en compte cette demandeur par les développeurs de la communauté PostgreSQL ?
Si non, penses-tu qu'il soit possible de créer une extension qui réalise cela ?

Merci d'avance

Cordialement

Hi Michael

Thank you for the accurate and detailed answer.
I would like your opinion on the need to have a "hook" for the beginning and the end of a session in PostgreSQL.
A concrete example:
Many companies use a corporate LDAP directory that is accessible only in secure (port 636) and read-only mode.
In my company, we use it to store the "user name" and associated "application roles".
We make connections to the PostgreSQL instances via the corporate LDAP directory and I would like that, at the connection of a user, a PL / pgSQL code is executed realizing the following actions:
- Retrieving application roles in the corporate LDAP directory
- Granting these roles to the user who has just logged in: GRANT <role_name> to <username>
- Similarly, when disconnecting the user, it would require a code that "revoke" the roles from this user.

This feature is important for the PostgreSQL community for the following reason:
From May 25, 2018, a European RGPD directive (GDPR in English) on the protection of personal data will come into force and will apply to all companies trading with Europe.
In the case of non-compliance with this Directive, a fine may be imposed up to 4% of the annual sales of the company.
Michael, do you think it's possible to take this proposition into account by the developers of the PostgreSQL community?
If no, do you think it's possible to create an extension that realize this?

Best Regards

Didier ROS
Expertise SGBD
DS IT/IT DMA/Solutions Groupe EDF/Expertise Applicative - SGBD
Nanterre Picasso - E2 565D (aile nord-est)
32 Avenue Pablo Picasso
92000 Nanterre
didier(dot)ros(at)edf(dot)frl

-----Message d'origine-----
De : michael(at)paquier(dot)xyz [mailto:michael(at)paquier(dot)xyz]
Envoyé : mercredi 18 avril 2018 04:03
À : guillaume(at)lelarge(dot)info
Cc : ROS Didier <didier(dot)ros(at)edf(dot)fr>; pgsql-fr-generale(at)postgresql(dot)org
Objet : Re: PostgreSQL et triggers

On Tue, Apr 17, 2018 at 05:43:58PM +0200, Guillaume Lelarge wrote:
> Non, cela n'existe pas. Néanmoins, il est possible de créer une
> extension qui déclencherait du code lors d'une connexion. C'est
> beaucoup plus de travail ceci dit et cetainement un détournement du
> ClientAuthentication_hook, mais cela reste possible dans une certaine
> mesure. Par contre, pour la déconnexion, c'est mort (à moins qu'un
> hook ait été ajouté entre temps :) ).

La version 11 devait avoir un hook pour le début et la fin d'une session, qui a été ajouté avec cd8ce3a2, mais le machin a été enlevé avec 98d54bb7. Donc c'est mort et enterré.
--
Michael

Ce message et toutes les pièces jointes (ci-après le 'Message') sont établis à l'intention exclusive des destinataires et les informations qui y figurent sont strictement confidentielles. Toute utilisation de ce Message non conforme à sa destination, toute diffusion ou toute publication totale ou partielle, est interdite sauf autorisation expresse.

Si vous n'êtes pas le destinataire de ce Message, il vous est interdit de le copier, de le faire suivre, de le divulguer ou d'en utiliser tout ou partie. Si vous avez reçu ce Message par erreur, merci de le supprimer de votre système, ainsi que toutes ses copies, et de n'en garder aucune trace sur quelque support que ce soit. Nous vous remercions également d'en avertir immédiatement l'expéditeur par retour du message.

Il est impossible de garantir que les communications par messagerie électronique arrivent en temps utile, sont sécurisées ou dénuées de toute erreur ou virus.
____________________________________________________

This message and any attachments (the 'Message') are intended solely for the addressees. The information contained in this Message is confidential. Any use of information contained in this Message not in accord with its purpose, any dissemination or disclosure, either whole or partial, is prohibited except formal approval.

If you are not the addressee, you may not copy, forward, disclose or use any part of it. If you have received this message in error, please delete it and all copies from your system and notify the sender immediately by return message.

E-mail communication cannot be guaranteed to be timely secure, error or virus-free.

In response to

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Longuet Maxime 2018-04-19 13:34:26 nouvelle charte site postgres
Previous Message Michael Paquier 2018-04-18 02:03:08 Re: PostgreSQL et triggers