485 votes

Quel est le nom d'utilisateur / mot de passe superutilisateur par défaut pour Postgres après une nouvelle installation?

Je viens d'installer postgres 8.4 sur Ubuntu 9.10 et il ne m'a jamais demandé de créer un superutilisateur. Y a-t-il un superutilisateur par défaut et son mot de passe ? Sinon, comment en créer un nouveau ?

2 votes

646voto

user716468 Points 6254

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 :

  1. 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.

  2. 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.

17 votes

Donc, comment verrouiller l'utilisateur postgres à nouveau ?

4 votes

@ultrajohn - cela dépend de la distribution que vous utilisez, mais vous pouvez modifier /etc/passwd et mettre * à la place du mot de passe

4 votes

/etc/shadow est l'endroit où est gardé le mot de passe @lzap.

196voto

dcrawkstar Points 2004

Entrez sur la ligne de commande:

$ sudo -u postgres psql postgres
postgres=# \password postgres

Vous verrez:

Entrez le nouveau mot de passe:
Entrez-le à nouveau:

10 votes

Ceci est ce qui est nécessaire pour utiliser un outil comme pgadminIII (lors de la configuration d'un profil serveur) immédiatement après l'installation de Postgres lui-même. Merci!

71voto

David Mackintosh Points 14093

Vous manipulez postgres via l'utilisateur postgres, comme ceci :

# su - postgres
$ createdb mydb
$ psql -s mydb
# create user someuser password 'somepassword';
# GRANT ALL PRIVILEGES ON DATABASE mydb TO someuser;

0 votes

Lorsque je passe à postgres, on me demande un mot de passe. Je ne me souviens pas en avoir saisi un auparavant. Existe-t-il un moyen de réinitialiser ce mot de passe pour postgres?

5 votes

@ThierryLam Vous devez être root pour su à l'utilisateur postgres sans entrer de mot de passe. Sur la plupart des systèmes, le compte Unix de Postgres est verrouillé (aucun mot de passe ne fonctionnera), ce qui signifie que seul root peut su à ce compte.

2 votes

Utilisez sudo au lieu de su.

26voto

M.S. Dousti Points 453

Sous Windows, faites ce qui suit (IMPORTANT : Utilisez un compte administrateur Windows) :

  1. Après l'installation, ouvrez \data\pg_hba.conf.

  2. Modifiez ces deux lignes et remplacez "md5" par "trust" :

    host all all 127.0.0.1/32 md5

    host all all ::1/128 md5

  3. Redémarrez le service PostgreSQL (peut ne pas être nécessaire).

  4. (Facultatif) Ouvrez une invite de commande et changez le code page en 1252 :

    cmd.exe /c chcp 1252

  5. Connectez-vous à PostgreSQL. Aucun mot de passe ne sera nécessaire (notez le paramètre -U en majuscules) :

    psql -U postgres

  6. (Facultatif, recommandé pour des raisons de sécurité) Changez le mot de passe de l'utilisateur postgres :

    \password postgres

    et remplacez "trust" par "md5" dans pg_hba.conf.

6voto

Mirek Rusin Points 5880

Si vous essayez d'accéder à l'interface de ligne de commande PostgreSQL, vous pouvez taper :

psql -U postgres my_database

my_database est le nom de votre base de données.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X