Forum Programmation.SQL PostgreSQL : rôle commun par défaut ?

Posté par  .
Étiquettes : aucune
0
5
mar.
2007
Bonsoir à tous.

Bon, après avoir résolu mon problème précédent ( https://linuxfr.org/forums/42/20971.html ), je cherche un moyen élégant de venir à bout de ce qui suit :

Je suis en train de mettre en place une base de production, appelons-la mabase. Plusieurs personnes sont censées travailler à son développement. Plutôt que d'accorder des droits individuellement à chacun d'eux, il me paraît plus judicieux de créer l'utilisateur-rôle mabase associé, de lui accorder les droits nécessaires sur cette base, puis de faire de chaque personne concernée un membre du rôle mabase grâce à GRANT mabase TO xxxx.

Ca marche plutôt pas mal jusqu'à présent, sauf que les utilisateurs peuvent créer des tables dans la base parce qu'ils sont membres du groupe mabase, mais ces tables continuent de leur appartenir et par défaut, les autres utilisateurs n'ont aucun droit dessus. Pas même celui de les lire.

Par contre, les utilisateurs peuvent explicitement prendre l'identité "mabase" sans mot de passe grâce à SET ROLE mabase, ce qui permet de créer des objets appartenant à l'utilisateur commun, et donc visibles autant qu'administrables directement par tous les utilisateurs autorisés.

Ma question est donc : Y a-t-il moyen de définir des droits par défaut sur les objets créés dans un schéma, voire un propriétaire par défaut (ici le role mabase).

A défaut, est-il possible d'établir un "SET ROLE ma base" automatique à la connexion sur cette base ? A la limite, est-il possible de passer une option à la ligne de commande de psql pour qu'il le fasse, ce afin de permettre l'insertion automatique de dumps, par exemple. La page de manuel sur psql reste muette à ce sujet.

L'idée étant bien sûr de conserver un login/password unique par utilisateur et de ne pas transformer le rôle "mabase" en utilisateur à part entière (donc avec droit de connexion).

Merci à tous.
  • # **** Résolu ****

    Posté par  . Évalué à 6.

    Bon, ça fait deux jours que je planche dessus et il suffit que je poste pour que je trouve la solution tout de suite après :-/ Du coup, je me réponds à moi-même (et aux autres, par conséquent) :

    ALTER DATABASE mabase SET role = 'mabase';

    Et les membres du groupe passent automatiquement en 'mabase' en se connectant. C'est entièrement transparent, zéro adminitration de leur coté. Génial.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.