Habilita a autenticação de ident e md5 no PostgreSQL

4

No Fedora 12, estou configurando um banco de dados de teste para mim, e o pg_hba.conf contém o seguinte por padrão:

# 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          ident
# IPv6 local connections:
host    all         all         ::1/128               ident

Eu quero ativar logins md5 para que o usuário do PostgreSQL chamado 'foo' possa acessar o banco de dados chamado 'foo'. No entanto, quando eu adicionar esta linha e reiniciar o postgres:

local   foo         foo                               md5

Executar o psql -U 'foo' com minha conta de usuário regular ainda gera a mensagem:

psql: FATAL:  Ident authentication failed for user "foo"

Eu tenho que remover a primeira linha local (que tem ident) antes que eu possa fazer login via md5 para 'foo'.

Como posso ativar a autenticação md5 para 'foo' enquanto mantenho a autenticação de identificação como eu já possuo?

    
por Joey Adams 15.02.2010 / 03:41

1 resposta

5
O

link indica que a ordem das entradas é alterada, especificamente:

Since the pg_hba.conf records are examined sequentially for each connection attempt, the order of the records is significant. Typically, earlier records will have tight connection match parameters and weaker authentication methods, while later records will have looser match parameters and stronger authentication methods. For example, one might wish to use trust authentication for local TCP/IP connections but require a password for remote TCP/IP connections. In this case a record specifying trust authentication for connections from 127.0.0.1 would appear before a record specifying password authentication for a wider range of allowed client IP addresses.

(tente inverter o pedido - coloque a linha que você está adicionando no topo)

    
por 15.02.2010 / 04:03