pgcrypto

Lists: pgsql-fr-generale
From: Pierre Crumeyrolle <pierre(dot)crumeyrolle(at)csgroup(dot)eu>
To: pgsql-fr-generale(at)postgresql(dot)org
Subject: pgcrypto
Date: 2020-12-10 16:35:22
Message-ID: 973750ab-81dc-a28e-9fab-0bb34278df86@c-s.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

bonjour,

je tente d' utiliser les functions pg_crypto  , j’ai une erreur
"*ERROR:  must be superuser to read files" **
*

*precision j utilise gpg et pg crypto va lire ces cles sur le disque ,
je suis en postgres 9
*

*j essayes de lancer ca sous un user qui n est pas superutilisateur ,
avec le role superutilisateur ca marche
*

un "GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO ftuser;" ne
change rien**

quelqu'un a t il eu ce type de problème ? Merci

postgres 9.5.16 on linux

psql -h localhost -p 5432 -d FT_DB -U ftuser
Password for user ftuser:
psql (9.5.16)
Type "help" for help.

*FT_DB=> select
ft_decrypt_pwd(password,'3B259A9A610271EC2F07A6E557FBE1DA05770E44') from
ft_user;**
**ERROR:  must be superuser to read files**
**CONTEXT:  PL/pgSQL function ft_decrypt_pwd(bytea,text) line 8 at
assignment**
*


From: Michel Payan <michel(dot)payan(at)gmail(dot)com>
To: Pierre Crumeyrolle <pierre(dot)crumeyrolle(at)csgroup(dot)eu>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: pgcrypto
Date: 2020-12-10 21:47:43
Message-ID: CAPFLA-Mrz60ztsomNt6KtsGQbWk53J1cqRy1+kqddgDNFaT-dw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

L'erreur te dit qu'il faut être superuser !
Normal que ça fonctionne donc avec un superuser et pas sans ...

Le jeu. 10 déc. 2020 à 22:30, Pierre Crumeyrolle <
pierre(dot)crumeyrolle(at)csgroup(dot)eu> a écrit :

> bonjour,
>
> je tente d' utiliser les functions pg_crypto , j’ai une erreur "*ERROR:
> must be superuser to read files" *
>
>
> *precision j utilise gpg et pg crypto va lire ces cles sur le disque , je
> suis en postgres 9 *
>
>
> *j essayes de lancer ca sous un user qui n est pas superutilisateur , avec
> le role superutilisateur ca marche *
>
> un "GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO ftuser;" ne change
> rien
>
> quelqu'un a t il eu ce type de problème ? Merci
>
> postgres 9.5.16 on linux
>
> psql -h localhost -p 5432 -d FT_DB -U ftuser
> Password for user ftuser:
> psql (9.5.16)
> Type "help" for help.
>
> *FT_DB=> select
> ft_decrypt_pwd(password,'3B259A9A610271EC2F07A6E557FBE1DA05770E44') from
> ft_user;*
> *ERROR: must be superuser to read files*
> *CONTEXT: PL/pgSQL function ft_decrypt_pwd(bytea,text) line 8 at
> assignment*
>


From: Michael Paquier <michael(at)paquier(dot)xyz>
To: Michel Payan <michel(dot)payan(at)gmail(dot)com>
Cc: Pierre Crumeyrolle <pierre(dot)crumeyrolle(at)csgroup(dot)eu>, pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: pgcrypto
Date: 2020-12-11 02:02:07
Message-ID: X9LTHwU0g12adlDz@paquier.xyz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

On Thu, Dec 10, 2020 at 10:47:43PM +0100, Michel Payan wrote:
> L'erreur te dit qu'il faut être superuser !
> Normal que ça fonctionne donc avec un superuser et pas sans ...

A noter que la version 11 a ajouté un rôle système nommé
pg_read_server_files, donc il n'est pas forcément nécessaire de
dépendre d'un superuser dans les nouvelles versions pour avoir accès à
cette fonctionnalité.
--
Michael


From: CRUMEYROLLE Pierre <pierre(dot)crumeyrolle(at)csgroup(dot)eu>
To: pgsql-fr-generale(at)lists(dot)postgresql(dot)org
Subject: Re: pgcrypto
Date: 2020-12-11 08:11:35
Message-ID: 20201211091135.Horde.5tLC7kRmL3ZLLbM_9AsOIA1@messagerie.c-s.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

pas de bol je suis en 9, ca veut dire que pg_crypto en 9 ca sert a
rien si faut être superuser pour l utiliser

Michael Paquier <michael(at)paquier(dot)xyz> a écrit :

> On Thu, Dec 10, 2020 at 10:47:43PM +0100, Michel Payan wrote:
>> L'erreur te dit qu'il faut être superuser !
>> Normal que ça fonctionne donc avec un superuser et pas sans ...
>
> A noter que la version 11 a ajouté un rôle système nommé
> pg_read_server_files, donc il n'est pas forcément nécessaire de
> dépendre d'un superuser dans les nouvelles versions pour avoir accès à
> cette fonctionnalité.
> --
> Michael


From: Alain Benard <alain(dot)benard(at)inrae(dot)fr>
To: CRUMEYROLLE Pierre <pierre(dot)crumeyrolle(at)csgroup(dot)eu>, "pgsql-fr-generale(at)lists(dot)postgresql(dot)org" <pgsql-fr-generale(at)lists(dot)postgresql(dot)org>
Subject: RE: pgcrypto
Date: 2020-12-11 08:25:19
Message-ID: 6fe4bf277359401698c59a79efcce8de@IDFDCPRIPEXMU06.inra.local
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Bonjour,
Peut-être une alternative :
Tu demandes à un superuser de créer une procédure stockée qui encapsulerait les instructions interdites.
Ensuite il faut que cette procédure stockée puisse s'exécuter avec les droit de celui qui l'a écrite (DEFINER)
Ensuite il donne les droits d'exécution sur cette procédure à un nombre restreint de role dont le tien.
J'ai déjà fait ça pour permettre 'CREATE ROLE' sans avoir le flag de gestionnaire de role.
Bonne journée.
Alain.

-----Message d'origine-----
De : CRUMEYROLLE Pierre <pierre(dot)crumeyrolle(at)csgroup(dot)eu>
Envoyé : vendredi 11 décembre 2020 09:12
À : pgsql-fr-generale(at)lists(dot)postgresql(dot)org
Objet : Re: pgcrypto

pas de bol je suis en 9, ca veut dire que pg_crypto en 9 ca sert a rien si faut être superuser pour l utiliser

Michael Paquier <michael(at)paquier(dot)xyz> a écrit :

> On Thu, Dec 10, 2020 at 10:47:43PM +0100, Michel Payan wrote:
>> L'erreur te dit qu'il faut être superuser !
>> Normal que ça fonctionne donc avec un superuser et pas sans ...
>
> A noter que la version 11 a ajouté un rôle système nommé
> pg_read_server_files, donc il n'est pas forcément nécessaire de
> dépendre d'un superuser dans les nouvelles versions pour avoir accès à
> cette fonctionnalité.
> --
> Michael


From: "Daniel Verite" <daniel(at)manitou-mail(dot)org>
To: "Pierre Crumeyrolle" <pierre(dot)crumeyrolle(at)csgroup(dot)eu>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: pgcrypto
Date: 2020-12-11 11:37:30
Message-ID: 9e97037d-f66b-4704-b2d2-dc83fa8c9aeb@manitou-mail.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Pierre Crumeyrolle wrote:

> precision j utilise gpg et pg crypto va lire ces cles sur le disque ,

Les fonctions de pgcrypto ne vont pas lire sur disque, elles prennent
le contenu des clefs en argument.
cf https://docs.postgresql.fr/13/pgcrypto.html
ou les exemples dans
https://git.postgresql.org/gitweb/?p=postgresql.git;a=tree;f=contrib/pgcrypto/sql

Vous n'avez pas montré la requête qui se prend une erreur
"must be superuser to read files" mais vraisemblablement
c'est la fonction pg_read_file() qui produit ça, ce n'est pas pgcrypto
lui-même.

D'autres usages sont possibles, comme le fait que la clef vienne
du client et soit embarquée dans la requête, ou que la clef
soit stockée dans une fonction SQL. Si la clef doit forcément être
sur le disque du serveur, comme proposé plus haut typiquement
il faudrait qu'une fonction lisant ce fichier appartienne à un super
utilisateur et soit marquée SECURITY DEFINER.

Cordialement,
--
Daniel


From: Pierre Crumeyrolle <pierre(dot)crumeyrolle(at)csgroup(dot)eu>
To: pgsql-fr-generale(at)lists(dot)postgresql(dot)org
Subject: Re: pgcrypto
Date: 2020-12-11 12:47:46
Message-ID: fefa291c-fa3b-e3d2-17cd-af566579dc32@c-s.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

ok je confirme que ça marche si on stocke la clé par exemple en bd j
'évite la lecture sur disque

merci pour les tuyaux je pense qu'en 11  j aurais pas eu ce soucis

Le 11/12/2020 à 12:37, Daniel Verite a écrit :
> Pierre Crumeyrolle wrote:
>
>> precision j utilise gpg et pg crypto va lire ces cles sur le disque ,
> Les fonctions de pgcrypto ne vont pas lire sur disque, elles prennent
> le contenu des clefs en argument.
> cf https://docs.postgresql.fr/13/pgcrypto.html
> ou les exemples dans
> https://git.postgresql.org/gitweb/?p=postgresql.git;a=tree;f=contrib/pgcrypto/sql
>
> Vous n'avez pas montré la requête qui se prend une erreur
> "must be superuser to read files" mais vraisemblablement
> c'est la fonction pg_read_file() qui produit ça, ce n'est pas pgcrypto
> lui-même.
>
> D'autres usages sont possibles, comme le fait que la clef vienne
> du client et soit embarquée dans la requête, ou que la clef
> soit stockée dans une fonction SQL. Si la clef doit forcément être
> sur le disque du serveur, comme proposé plus haut typiquement
> il faudrait qu'une fonction lisant ce fichier appartienne à un super
> utilisateur et soit marquée SECURITY DEFINER.
>
> Cordialement,
> --
> Daniel