Le fichier .pgpass
, situé dans le répertoire personnel de
l'utilisateur est un
fichier contenant les mots de passe à utiliser si la
connexion requiert un mot de passe (et si aucun mot de passe n'a été spécifié).
Sur Microsoft Windows, le fichier est nommé
%APPDATA%\postgresql\pgpass.conf
(où %APPDATA%
fait référence au sous-répertoire Application Data du profile de l'utilisateur).
De manière alternative, le fichier de mots de passe peut être spécifié en
utilisant le paramètre de connexion passfile
ou la variable d'environnement PGPASSFILE
.
Ce fichier devra être composé de lignes au format suivant (une ligne par connexion) :
nom_hote
:port
:database
:nomutilisateur
:motdepasse
(Vous pouvez ajouter en commentaire dans le fichier cette ligne que vous
précédez d'un dièse (#
).)
Chacun des quatre premiers champs
pourraient être une valeur littérale ou *
(qui correspond à
tout). La première ligne réalisant une correspondance pour les paramètres de
connexion sera utilisée (du coup, placez les entrées plus spécifiques en premier
lorsque vous utilisez des jokers). Si une entrée a besoin de contenir
:
ou \
, échappez ce caractère avec
\
. Le champ du nom d'hôte est mis en correspondance avec
le paramètre de connexion host
s'il est spécifié. Dans
le cas contraire, c'est fait avec le paramètre hostaddr
.
Si ni l'un ni l'autre ne sont indiqués, le nom d'hôte
localhost
est cherché. Le nom d'hôte
localhost
est aussi recherché quand la connexion est une
connexion de socket de domaine Unix et que le paramètre
host
correspond au chemin de répertoire par défaut de la
socket pour libpq. Dans un serveur en standby,
le champ de la base de données à replication
correspond
aux connexions réalisées par le serveur maître pour la réplication en flux.
Le champ database est d'une utilité limitée car les utilisateurs ont le
même mot de passe pour toutes les bases de données de la même instance.
Sur les systèmes Unix, les droits sur un fichier de mots de passe doivent
interdire l'accès au groupe et au reste du monde ; faites-le par cette
commande : chmod 0600 ~/.pgpass
. Si les droits sont
moins stricts que cela, le fichier sera ignoré. Sur Microsoft Windows, il est
supposé que le fichier est stocké dans un répertoire qui est sécurisé, donc
aucune vérification des droits n'est effectuée.