par défaut postgres d'utilisateur et mot de passe
Je suis tout nouveau sur postgresql gestion de base de données.
J'ai été jouer avec un db que je n'ai pas de créer.
En essayant de comprendre les différents rôles qui ont été créés.
Le fait que je peux me connecter en procédant de la manière suivante signifie que l'utilisateur postgres n'a pas configuré de mot de passe?
psql -U postgres
J'ai fait un
`select * from pg_roles`
et je vois qu'il y a un mot de passe défini.
J'ai trouvé cet article: http://www.postgresql.org/message-id/[email protected]
qui seeme pour confirmer que l'utilisateur postgres est là par défaut...
et vous devez explicitement définir un mot de passe. C'est la deuxième partie sur le mot de passe que je ne suis pas sûr. Est-il vide par défaut ou quelque chose?
Je sais que si pg_hba.conf est configuré pour la confiance tout de 127.0.0.1, alors vous pouvez vous connecter à partir du serveur local sans spécifier de mot de passe. Que peut-être ce qui se passe dans mon cas... je vais tester en changeant le pg_hba.fichier conf...
Mais il serait bien de savoir ce que le mot de passe par défaut pour l'utilisateur postgres.
Grâce.
- Il n'y a pas de mot de passe par défaut. Vous pouvez le vérifier en changeant de "fiducie" au "md5" dans votre
pg_hba.conf
et le rechargement de vos fichiers de configuration (par exemple.select pg_reload_conf()
. Vérifiez pour un~postgres/.pgpass
fichier.
Vous devez vous connecter pour publier un commentaire.
pg_roles
n'est pas le point de vue qui peut dire si un utilisateur a un mot de passe ou pas, parce que le champ mot de passe est toujours********
n'importe quoi.Cela vient de la définition de ce point de vue (prises à partir de la version 9.3):
Résultat:
Notez comment le
rolpassword
colonne est codé en dur pour ne révèlent rien (On peut se demander pourquoi il est là. Peut-être pour la rétro-compatibilité?)D'autre part , il y a un
pg_shadow
vue qui affiche les mots de passe car ils sont stockés, dans une colonne nomméepasswd
. Ce point de vue est uniquement lisible par un super-utilisateur (typiquement: lapostgres
de l'utilisateur).Exemple:
Résultat sur la vanille, installation de Debian:
D'abord le
postgres
mot de passe est souvent vide, sauf sur Windows pour que l'installateur a tendance à le demander. Sur Unix,pg_hba.conf
est souvent mis en place de telle façon que seul l'utilisateur de l'OSpostgres
peut connecter en tant qu'utilisateur de base de donnéespostgres
par socket Unix domaines, sans un mot de passe. C'est raisonnable comme une stratégie de sécurité par défaut. Windows n'a pas les sockets de domaine Unix, et les versions les plus récentes de l'installateur n'utilise même pas unepostgres
utilisateur de l'OS, il est donc logique qu'il met en œuvre une autre stratégie de sécurité par défaut.Si un mot de passe est vide et le
pg_hba.conf
nécessite un mot de passe pour la base de données particulière/l'utilisateur/l'origine d'une connexion entrante, puis la connexion est rejetée. Il n'y a pas de différence entre un mot de passe vide et de l'absence de mot de passe.