Aucune invite de mot de passe pour le super-utilisateur postgresql

Après que j'ai installé PostgreSQL 9.1 sur Ubuntu 12.04 j'ai mis le mot de passe pour le "postgres" compte super-utilisateur. Je veux que tous les utilisateurs doivent entrer leur mot de passe lors de loging. C'est pourquoi j'ai configuré pg_hba.conf comme suit:

#Database administrative login by Unix domain socket
local   all             postgres                                md5

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5

J'ai redémarré postgresql après avoir fait ces changements. Quand je fais ce psql -U testuser je me demande un mot de passe, mais lorsque je me connecte avec le "postgres" compte comme psql -U postgres je n'ai pas de mot de passe rapide et suis connecté.
Si je force l'invite de mot de passe avec psql -U postgres -W je peux me connecter en tapant le mot de passe correct ou en tapant rien du tout. En tapant un mot de passe erroné est rejeté.

Quelqu'un peut-il m'expliquer pourquoi ce qui se passe?

Sur une remarque: je vois beaucoup d'exemple où les gens utilisent ident que la méthode d'authentification pour le "postgres" de l'utilisateur, en faisant valoir que, pour devenir le "postgres" un utilisateur a besoin du mot de passe root de la machine. Je suppose que le raisonnement est que si un attaquant obtient un accès root, votre faire de toute façon. Je préfère de se connecter avec un mot de passe si, celui qui n'est pas le même que le mot de passe root. Je visez plutôt d'avoir des mots de passe différents pour différentes choses. Est-ce raisonnable?

Sortie de grep '^[^#]' pg_hba.conf

local   all             postgres                                md5
local   all             all                                     md5
host    all             all             127.0.0.1/32            md5

OriginalL'auteur Basil | 2012-08-14