Après avoir perdu son mot de passe MySQL [FR], imaginons que vous perdiez votre mot de passe PostGreSQL et que vous désiriez reprendre la main sur vos bases de données...

On va encore outrepasser les droits, en faisant en sorte que la base n'effectue aucune authentification des utilisateurs. On va pour cela éditer fichier de configuration das listes d'accès : pg_hba.conf. On va rajouter la ligne suivante (ou modifier une ligne déjà existante pour "local") :

# On autorise l'accès à n'importe quel utilisateur sur n'importe quelle base,
# via les sockets Unix, sans mot de passe
local    all    trust

/!\ ATTENTION : n'importe qui avec un accès local va pouvoir prendre possession de vos bases de données, et faire n'importe quoi avec, je vous conseille d'arrêter vos services Web, de faire se déconnecter tous les utilisateurs locaux, et d'empêcher ces derniers de se reconnecter le temps de faire vos manipulations.

On fait prendre en compte la modification effectuée, en envoyant un signal HUP au démon PostGreSQL. (killall -HUP pgsql). Dès lors, il est parfaitement possible de se connecter à la base avec le super utilisateur de celle-ci (postgres) sans qu'aucun mot de passe ne vous soit demandé, et de changer son propre mot de passe :

00:02 xarli@iguzki % psql -U postgres template1

Welcome to the POSTGRESQL interactive sql monitor:
  Please read the file COPYRIGHT for copyright terms of POSTGRESQL

   type \? for help on slash commands
   type \q to quit
   type \g or terminate with semicolon to execute query
 You are currently connected to the database: template1

template1=> ALTER USER postgres WITH PASSWORD 'mon_nouveau_mot_de_passe_que_je_vais_bien_noter';

Remplacez bien sûr mon_nouveau_mot_de_passe_que_je_vais_bien_noter par le mot de passe que vous désirez affecter à votre super-utilisateur, et que vous allez bien retenir cette fois ci. ;)

Il ne vous reste alors plus qu'à remettre votre fichier de configuration des autorisations d'accès comme il était à l'origine, et de renvoyer un signal HUP à votre démon PostGreSQL.

Retrouvez cette astuce dans le document trucs et astuces [FR] sur contrib.xarli.net [FR], comme d'autres.