116 votes

PostgreSQL : Réinitialisation du mot de passe de PostgreSQL sur Ubuntu

Dans Ubuntu, j'ai installé la base de données PostgreSQL et créé un super utilisateur pour le serveur.

Si j'ai oublié le mot de passe du superutilisateur postgresql, comment puis-je le réinitialiser (le mot de passe) pour cet utilisateur ?

J'ai essayé de le désinstaller puis de le réinstaller mais le superutilisateur précédemment créé est conservé.

268voto

Daniel Vérité Points 15675

En supposant que vous êtes l'administrateur de la machine, Ubuntu vous a accordé le droit de sudo pour exécuter n'importe quelle commande sous n'importe quel utilisateur.
En supposant également que vous n'avez pas restreint les droits dans la pg_hba.conf (dans le /etc/postgresql/9.1/main ), il devrait contenir cette ligne comme première règle :

# Database administrative login by Unix domain socket  
local   all             postgres                                peer

(A propos de l'emplacement du fichier : 9.1 est la version majeure de postgres et main le nom de votre "cluster". Il sera différent si vous utilisez une version plus récente de postgres ou des noms autres que ceux par défaut. Utilisez le pg_lsclusters pour obtenir ces informations pour votre version/système).

De toute façon, si le pg_hba.conf ne contient pas cette ligne, éditez le fichier, ajoutez-la, et rechargez le service avec la commande sudo service postgresql reload .

Ensuite, vous devriez pouvoir vous connecter avec psql comme superutilisateur de postgres avec cette commande shell :

sudo -u postgres psql

Une fois dans psql, lancez la commande SQL :

ALTER USER postgres PASSWORD 'newpassword';

Dans cette commande, postgres est le nom d'un superutilisateur. Si l'utilisateur dont le mot de passe est oublié était ritesh la commande serait :

ALTER USER ritesh PASSWORD 'newpassword';

Références : Documentation PostgreSQL 9.1.13, Chapitre 19. Authentification du client

Gardez à l'esprit que vous devez taper postgres avec un seul S à la fin

Si le fait de laisser le mot de passe en clair dans l'historique des commandes ou le journal du serveur pose un problème, psql fournit une méta-commande interactive pour éviter cela, comme alternative à ALTER USER ... PASSWORD :

\password username

Il demande le mot de passe avec une entrée en double aveugle, puis le hachageselon la méthode de l'utilisateur. password_encryption et émettre le ALTER USER au serveur avec la version hachée du mot de passe, au lieu de la version en texte clair.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X