Vous n'êtes pas identifié(e).
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
Bonjour.
Cela n'est pas possible.
Julien.
https://rjuju.github.io/
Hors ligne
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
À 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.
Julien.
https://rjuju.github.io/
Hors ligne
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
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
Guillaume.
Hors ligne
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
Voilà quelques liens sur le sujet :
Julien.
https://rjuju.github.io/
Hors ligne
Merci pour les liens très intéressants.
Hors ligne