web-dev-qa-db-fra.com

définir un mot de passe vide pour l'utilisateur PostgreSQL

J'utilise la commande postgresql 'createuser myusername'. Il me demande toujours un mot de passe. Si je laisse le mot de passe vide, cela donne une erreur qu'aucun mot de passe n'est spécifié.

Je veux simplement créer un utilisateur avec un mot de passe vide/sans mot de passe et je ne peux pas le faire avec Postgresql 9 sous mac os x.

Quelles mesures dois-je prendre pour créer un utilisateur sans mot de passe. La commande me demande toujours de saisir un mot de passe.

55
othman

Vous aboyez le mauvais arbre en essayant de résoudre ce problème avec createuser. Si vous souhaitez vérifier la page man pour createuser, il vous dira que la connexion échouera si vous avez vraiment besoin d'un mot de passe et définissez --no-password. createuser crée simplement un utilisateur. Il ne pas décide de la façon dont l'utilisateur devra s'authentifier.

L'authentification est gérée principalement dans pg_hba.conf, qui décide d'exiger ou non des mots de passe lors de la connexion. Je n'ai jamais exécuté PostgreSQL sur OS X. Sous Linux, la configuration de stock de ma distribution ressemble à ceci:

# TYPE  DATABASE        USER            CIDR-ADDRESS            METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     ident
# IPv4 local connections:
Host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
Host    all             all             ::1/128                 trust

Je m'assurerais que vous avez quelque chose comme la première ligne pour l'accès au développement. Remarque: psql essaiera de se connecter avec un socket Unix s'il n'y a pas --Host jeu d'options. La deuxième ligne serait utilisée si vous essayez de vous connecter avec psql --Host localhost

61
nate c

Plutôt que de créer un utilisateur sans mot de passe, créez un fichier .pgpass avec le mot de passe pour qu'il soit automatiquement fourni. Cela sera respecté par toutes les applications qui utilisent libpq pour se connecter, qui est pratiquement toutes sauf le pilote JDBC et le pilote .NET.

34
araqnid

La manière supplémentaire (je le préfère) de changer le mot de passe de l'utilisateur PG est de se connecter à la console postgres (en tant qu'utilisateur postgres sur un PC local) et d'émettre une requête SQL:

$ Sudo -u postgres psql -w

# ALTER USER postgres WITH PASSWORD '';