Question Quel est le nom d'utilisateur / mot de passe de 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? Si non, comment en créer un nouveau?


347
2018-02-06 04:54


origine


Probablement très pertinent - "J'installe PostgreSQL et je ne connais pas le mot de passe de l'utilisateur postgres". - Milen A. Radev


Réponses:


MISE EN GARDE La réponse à propos de la modification du mot de passe UNIX pour "postgres" par "$ sudo passwd postgres" n’est pas préférée, et peut même être DANGEREUX!

C'est pourquoi: Par défaut, le compte UNIX "postgres" est verrouillé, ce qui signifie qu'il ne peut pas être connecté à l'aide d'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 une valeur faible, telle que "postgres", vous vous exposez à un grand danger pour la sécurité. Par exemple, un certain nombre de robots tentent de combiner le nom d'utilisateur / mot de passe "postgres / postgres" pour se connecter à votre système UNIX.

Ce que vous devriez faire, c'est suivre Chris Jamesla réponse:

sudo -u postgres psql postgres

# \password postgres

Enter new password: 

Pour l'expliquer un peu. Il existe généralement deux méthodes par défaut pour se connecter au serveur PostgreSQL:

  1. En exécutant la commande "psql" en tant qu'utilisateur UNIX (appelé authentification IDENT / PEER), par exemple: sudo -u postgres psql. Notez que sudo -u ne déverrouille PAS l'utilisateur UNIX.

  2. via une connexion TCP / IP utilisant le nom d'utilisateur / mot de passe géré par PostgreSQL (appelé "authentification TCP") (c'est-à-dire, NE PAS le mot de passe UNIX).

Donc vous jamais vouloir définir le mot de passe pour le 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 du réglage par défaut. Par exemple, on pourrait synchroniser le mot de passe PostgreSQL avec le mot de passe UNIX et n'autoriser que les connexions locales. Cela dépasserait le cadre de cette question.


485
2017-10-28 06:25



alors, comment verrouillez-vous l'utilisateur postgres? - ultrajohn
@ultrajohn - dépend de la distribution que vous utilisez, mais vous pouvez éditer / etc / passwd et mettre * à la place du mot de passe - lzap
/etc/shadow est l'endroit où le mot de passe est conservé @lzap. - Gringo Suave
À droite, vous pouvez définir / sbin / nologin dans / etc / passwd ou mettre * à la place du mot de passe dans / etc / shadow. - lzap
passwd --lock postgres - Stéphane


Entrez sur la ligne de commande:

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

Tu verras:

Enter new password: 
Enter it again:

157
2018-03-16 15:39



C’est ce qui est nécessaire pour utiliser un outil tel que pgadminIII (lors de la configuration d’un profil de serveur) immédiatement après l’installation de Postgres. Merci! - limist


Vous manipulez postgres à travers l'utilisateur postgrescomme suit:

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

58
2018-02-06 05:02



@ThierryLam Vous devez être root pour su à l'utilisateur postgres sans entrer de mot de passe. Sur la plupart des systèmes, le compte Postgres Unix est verrouillé (aucun mot de passe ne fonctionnera), ce qui signifie seulement la racine peut su à ce compte. - voretaq7
Utilisation sudo au lieu de su. - reinierpost
Je devais courir sudo su - postgres : \ - Jim Schubert
@Jim Schubert: vous pouvez aussi courir sudo -u postgres. - reinierpost
sudo -u postgres psql - fonctionne aussi pour pouvoir le faire en une étape. - Ominus


Sous Windows, procédez comme suit (IMPORTANT: utilisez une application Windows administrateur Compte):

  1. Après l'installation, ouvrez <PostgreSQL PATH>\data\pg_hba.conf.

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

    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 modifiez la page de codes en 1252:

    cmd.exe /c chcp 1252

  5. Connectez-vous à PostgreSQL. Un mot de passe différent sera requis (notez le paramètre majuscule -U):

    psql -U postgres

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

    \password postgres

    et changer "confiance" retour à "md5" dans pg_hba.conf.


20
2017-11-18 19:25





Si vous essayez d'accéder au shell PostgreSQL, vous pouvez taper:

psql -U postgres my_database

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


5
2018-03-07 13:44