20.4. Autenticação por confiança #

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).