ATTENTION La réponse concernant le changement du mot de passe UNIX pour "postgres" via "$ sudo passwd postgres" n'est pas préférée, et peut même être DANGEREUSE !
Voici pourquoi : Par défaut, le compte UNIX "postgres" est verrouillé, ce qui signifie qu'il ne peut pas être ouvert en utilisant un mot de passe. Si vous utilisez "sudo passwd postgres", le compte est immédiatement déverrouillé. Pire, si vous définissez le mot de passe sur quelque chose de faible, comme "postgres", vous êtes exposé à un grand danger en matière de sécurité. Par exemple, il y a un certain nombre de robots qui tentent la combinaison nom d'utilisateur/mot de passe "postgres/postgres" pour se connecter à votre système UNIX.
Ce que vous devriez faire est de suivre la réponse de Chris James :
sudo -u postgres psql postgres
# \password postgres
Entrez le nouveau mot de passe :
Pour expliquer un peu. Il y a généralement deux façons par défaut de se connecter au serveur PostgreSQL :
-
En exécutant la commande "psql" en tant qu'utilisateur UNIX (appelée authentification IDENT/PEER), par exemple : sudo -u postgres psql
. Remarquez que sudo -u
NE déverrouille PAS l'utilisateur UNIX.
-
par une connexion TCP/IP en utilisant le nom d'utilisateur/mot de passe géré par PostgreSQL (appelée authentification TCP) (c'est-à-dire, PAS le mot de passe UNIX).
Vous ne devez donc jamais définir le mot de passe du compte UNIX "postgres". Laissez-le verrouillé tel qu'il est par défaut.
Bien sûr, les choses peuvent changer si vous le configurez différemment des paramètres par défaut. Par exemple, on pourrait synchroniser le mot de passe PostgreSQL avec le mot de passe UNIX et ne permettre que les connexions locales. Cela dépasserait le cadre de cette question.
2 votes
Probable très pertinent - "J'installe PostgreSQL et je ne connais pas le mot de passe de l'utilisateur postgres".