Mot de passe perdu super-utilisateur dans PostGreSQL?
Par xarli le dimanche, juin 20 2004, 00:06 - Trucs et astuces - Lien permanent
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.