Vous n'êtes pas identifié(e).

#1 20/08/2013 16:25:19

Philippe PAVY
Membre

Peut-on empêcher un rôle de faire un 'alter role set'

Bonjour,

Sur un cluster PostgreSQL j'ai plusieurs bases de créées, chacune avec un rôle de connexion dédié. Le cluster étant donc mutualisé, j’ai besoin de limiter les consommations de certaines ressources de manière à éviter qu’une application ne viennent trop perturber les autres. Pour faire simple, je ne veux surtout pas qu’un rôle donné puisse par exemple adapter le paramètre work_mem à ses propres besoin. Donc je ne souhaite pas donner la possibilité aux différents rôles de pouvoir exécuter un ‘alter role <nom_role> set <parametre>=<valeur>’.
Je cherche depuis un petit moment comment cela est faisable, mais sans succès. Quelqu’un aurait-il déjà fait cela ou aurait-il une idée à me communiquer sur le sujet ?

Merci pour vos retours

Hors ligne

#2 20/08/2013 16:47:04

rjuju
Administrateur

Re : Peut-on empêcher un rôle de faire un 'alter role set'

Bonjour.


Cela n'est pas possible.

Hors ligne

#3 20/08/2013 17:14:14

Philippe PAVY
Membre

Re : Peut-on empêcher un rôle de faire un 'alter role set'

C'est bien ce que je craignais. Pas bien terrible en terme de sécurité pour un fonctionnement en environnement mutualisé.
Merci bien pour la réponse rapide.

Hors ligne

#4 20/08/2013 17:30:34

rjuju
Administrateur

Re : Peut-on empêcher un rôle de faire un 'alter role set'

À partir du moment où vous autorisez une connexion sur votre serveur, il y a potentiellement des problèmes de sécurité. Droits sur les objets ? Ressources allouées ? Un simple generate_series sur plusieurs connexions peut effondrer le serveur.

Hors ligne

#5 20/08/2013 17:43:45

Philippe PAVY
Membre

Re : Peut-on empêcher un rôle de faire un 'alter role set'

Je suis entièrement d'accord. Mais plus je peux protéger mon instance, plus je garantie une qualité de production.
En tout cas merci pour le retour.

Hors ligne

#6 20/08/2013 23:23:40

gleu
Administrateur

Re : Peut-on empêcher un rôle de faire un 'alter role set'

Nativement, c'est impossible. Si vous y tenez absolument, vous pouvez toujours créer une bibliothèque que PostgreSQL chargera au démarrage, et qui mettra en place une fonction hook qui sera exécuté à chaque exécution d'une commande. Il faut bien savoir ce qu'on fait dans ce cas, car le moindre bug dans cette bibliothèque peut faire planter le serveur smile


Guillaume.

Hors ligne

#7 21/08/2013 09:41:13

Philippe PAVY
Membre

Re : Peut-on empêcher un rôle de faire un 'alter role set'

Bonjour

Je pense ne pas mettre effectivement cette solution en production, mais je vais tout de même la creuser pour ma culture personnelle. Merci pour cette idée.
Je cherchais plus la solution en bloquant certains droits sur certaines tables système pour le user voulu, mais sans succès. Solution pas très propre et risquée aussi, mais bon....

En tout cas, merci pour vos retours.
Bonne journée

Hors ligne

#8 21/08/2013 09:49:58

rjuju
Administrateur

Re : Peut-on empêcher un rôle de faire un 'alter role set'

Hors ligne

#9 21/08/2013 09:59:53

Philippe PAVY
Membre

Re : Peut-on empêcher un rôle de faire un 'alter role set'

Merci pour les liens très intéressants.

Hors ligne

Pied de page des forums