Merci @clochette,
Merci @Clochette et @zargos.
En supprimant le rôle vagrant dans PostgreSQL, la commande psql work
sous l’utilisateur Linux vagrant ne me permet plus d’accéder à la BDD work. Ce qui s’explique par le fait que l’utilisateur Linux vagrant n’a pas d’utilisateur (rôle) PostgreSQL vagrant.
Avec un rôle vagrant (CREATE ROLE vagrant LOGIN), si je suis sous l’utilisateur Linux vagrant la commande psql work
ne demande pas de mot de passe. En effet, sans autre précision PostgreSQL considère que je n’ai pas à en saisir un. Cela se comprend aisément par le fait qu’en étant déjà identifié sous Linux en tant qu’utilisateur vagrant, PostgreSQL n’a pas besoin de me le redemander.
Contrairement à ce que je supposais précédemment, la sécurité n’est donc pas mise en cause.
En ce qui concerne l’option -U de psql, elle sert à définir le nom d’utilisateur PostgreSQL lorsqu’il est différent de celui du nom d’utilisateur Linux actuel.
It could also be that you were assigned a PostgreSQL user name that is different from your operating system user name; in that case you need to use the -U
switch or set the PGUSER
environment variable to specify your PostgreSQL user name.
Enfin lorsque je saisis psql -h localhost work
(utilisation de l’option -h pour désigner l’emplacement du serveur PostgreSQL), un mot de passe est demandé. C’est légitime dans le sens où poste client et poste serveur peuvent correspondre à deux machines différentes sur le réseau et que l’on ne peut ni garantir et ni souhaiter qu’elles disposent des mêmes mots de passe. Le mot de passe à saisir est dans ce cas celui définit au niveau de l’utilisateur PostgreSQL.
En prenant en considération l’ensemble des paragraphes précédents, la création du rôle vagrant approprié se résume à la ligne suivante:
CREATE ROLE vagrant LOGIN PASSWORD 'xxxxx';