O que você quer não é possível com o esquema de autenticação atual do PostgreSQL. Quando a peer
de autenticação falhar, o PostgreSQL não passará para a próxima entrada em pg_hba.conf
. Somente a primeira entrada é usada e, se falhar, a conexão será rejeitada. O modo peer
não oferece a opção de recuperar a autenticação de senha se o ID do usuário não corresponder.
Então você não pode fazer isso. Desculpa. O mais próximo que você pode chegar é usar as conexões local
(soquete unix) com peer
auth e exigir que outros clientes se conectem por soquetes TCP / IP ( host
) com md5
auth. Usar um protocolo diferente permite escolher um método de autenticação diferente para cada um.
Eu propus recentemente uma mudança no comportamento de autenticação em pgsql-hackers que pode permitir o que você quer em uma versão posterior, se eu puder convencer as pessoas de que é uma boa idéia. Basicamente, o modo peer
tomaria uma opção md5_fallback
que permitiria solicitar uma senha do cliente se ela falhasse a peer
autenticação.