Quando é especificada a autenticação por confiança
(trust), o PostgreSQL
assume que qualquer um que possa se conectar ao servidor está
autorizado a acessar o banco de dados com qualquer nome de usuário
do banco de dados especificado (mesmo nomes de superusuário).
É claro que as restrições feitas nas colunas
database e user ainda se aplicam.
Este método só deve ser usado quando houver proteção adequada
no nível do sistema operacional nas conexões com o servidor.
A autenticação trust é apropriada, e muito
conveniente, para conexões locais em uma estação de trabalho de
usuário único.
Geralmente não é apropriada por si só em uma
máquina com múltiplos usuários.
Entretanto, pode-se usar trust mesmo em uma
máquina com múltiplos usuários, se for restringido o acesso ao
arquivo de soquete de domínio
Unix do servidor, usando
permissões do sistema de arquivos.
Para fazer isto, deve-se definir os parâmetros de configuração
unix_socket_permissions (e possivelmente
unix_socket_group) conforme descrito em
Conexões e autenticação.
Ou pode-se definir o parâmetro de configuração
unix_socket_directories para colocar o arquivo
de soquete em um diretório restrito adequado.
Definir permissões do sistema de arquivos ajuda apenas para conexões
de soquete de domínio Unix.
As conexões TCP/IP locais não são restringidas
por permissões do sistema de arquivos.
Portanto, se for desejado usar as permissões do sistema de arquivos
para segurança local, deve ser removida a linha
host ... 127.0.0.1 ... do arquivo
pg_hba.conf, ou alterada para um método de
autenticação diferente de trust.
A autenticação trust só é adequada para conexões
TCP/IP havendo confiança em todos os usuários
em todas as máquinas com permissão para se conectar ao servidor
de banco de dados pelas linhas que especificam
trust no arquivo pg_hba.conf.
Raramente faz sentido usar trust para qualquer
conexão TCP/IP diferente daquelas de
localhost (127.0.0.1).