Instalei o PostgreSQL e o pgAdminIII na minha caixa do Ubuntu Karmic.
Consigo usar o pgAdminIII com êxito (por exemplo, conectar / fazer logon), no entanto, quando tento fazer login no servidor usando o mesmo nome de usuário / pwd na linha de comando (usando o psql), recebo o erro:
psql: FATAL: Ident authentication failed for user "postgres"
Alguém agora como resolver este problema?
postgresql
morfoso
fonte
fonte
Respostas:
Você definiu as configurações apropriadas no pg_hba.conf?
Veja https://help.ubuntu.com/stable/serverguide/postgresql.html como fazê-lo.
fonte
As etapas a seguir funcionam para uma nova instalação do postgres 9.1 no Ubuntu 12.04. (Também funcionou no postgres 9.3.9 no Ubuntu 14.04.)
Por padrão, o postgres cria um usuário chamado 'postgres'. Nós logamos como ela e damos a ela uma senha.
Efetue logout
psql
digitando\q
ouctrl+d
. Então nos conectamos como 'postgres'. A-h localhost
parte é importante : diz aopsql
cliente que queremos conectar usando uma conexão TCP (que está configurada para usar autenticação por senha), e não por uma conexão PEER (que não se importa com a senha).fonte
PGHOST=localhost
, não precisará especificar a-h
opção todas as vezes. Isso também funciona com outrospg_*
comandos, comopg_dump
.Edite o arquivo
/etc/postgresql/8.4/main/pg_hba.conf
e substituaident
oupeer
por ummd5
outrust
, dependendo se você deseja solicitar uma senha em seu próprio computador ou não. Em seguida, recarregue o arquivo de configuração com:fonte
restart
funcionou para mim, nãoreload
--- após as alterações em/etc/postgresql/9.5/main/pg_hba.conf
(mudarpeer
paratrust
).Você está recebendo esse erro porque está com falha na autenticação do cliente. Com base na mensagem de erro, você provavelmente possui a configuração padrão do postgres, que define o método de autenticação do cliente como "IDENT" para todas as conexões do PostgreSQL.
Você deve definitivamente ler a seção 19.1 Autenticação de cliente no manual do PostgreSQL para entender melhor as configurações de autenticação disponíveis (para cada registro no pg_hba.conf ), mas aqui está o trecho relevante para ajudar no problema que você está tendo (no manual da versão 9.5 ):
Então ... para resolver o problema que você está enfrentando, siga um destes procedimentos:
Altere o (s) método (s) de autenticação definido (s) no seu
pg_hba.conf
arquivo paratrust
,md5
oupassword
(dependendo das suas necessidades de segurança e simplicidade) para os registros de conexão local que você definiu lá.Atualize
pg_ident.conf
para mapear os usuários do sistema operacional para usuários do PostgreSQL e conceda a eles os privilégios de acesso correspondentes, dependendo de suas necessidades.Deixe as configurações de IDENT em paz e crie usuários no banco de dados para cada usuário do sistema operacional ao qual você deseja conceder acesso. Se um usuário já estiver autenticado pelo sistema operacional e conectado, o PostgreSQL não exigirá autenticação adicional e concederá acesso a esse usuário com base em quaisquer privilégios (funções) atribuídos a ele no banco de dados. Esta é a configuração padrão.
Nota: A localização
pg_hba.conf
epg_ident.conf
depende do SO.fonte
/etc/postgresql/9.6/main/pg_hba.conf
.Simplesmente adicionar o
-h localhost
bit era todo meu necessário para trabalharfonte
this_computer = 'http://localhost'
Você pode definir a variável de ambiente
PGHOST=localhost
:fonte
Caso nenhuma das opções acima funcione para você:
eu fiz algumas instalações do Postgres, mas fiquei confusa hoje em um sistema RedHat 6.5 (instalando o Postgres 9.3). Minha configuração típica do hba.conf que o Aron mostra acima não funcionou. Acabou que meu sistema estava usando IPV6 e ignorando a configuração IPV4. Adicionando a linha:
permitiu-me entrar com sucesso.
fonte
De todas as respostas acima, nada funcionou para mim. Eu tive que alterar manualmente a senha dos usuários no banco de dados e de repente funcionou.
Eu usei as seguintes configurações:
pg_hba.conf
Finalmente, a conexão foi bem-sucedida para o seguinte comando:
fonte
Eu descobri que tinha que instalar um servidor de identidade, que escuta na porta 113.
E então ident funcionou.
fonte
Hummm ...
Se você puder se conectar com o nome de usuário e a senha no pgAdminIII, mas não puder se conectar
psql
, esses dois programas provavelmente estão se conectando ao banco de dados de maneira diferente.[Se você estiver se conectando a bancos de dados diferentes, primeiro tente conectar-se ao mesmo banco de dados. Ver abaixo.]
Do PostgreSQL: Documentação: 9.3: psql :
Se você não está executando algo como
psql ... -h host_name ...
o Ubuntu epsql
deve estar conectado através de um soquete de domínio Unix, o PostgreSQL provavelmente não está configurado para permitir um dos métodos de autenticação de senha para o usuário do postgres .Você pode testar isso executando:
sudo -u postgres psql
Se as obras acima, o servidor provavelmente está configurado para uso de pares de autenticação para ligações locais pelo postgres usuário, isto é, pedindo o sistema operacional para o seu nome de usuário para confirmar que você está postgres .
Portanto, é provavelmente o seu arquivo pg_hba.conf
O caminho completo do arquivo será algo como /etc/postgresql/9.3/main/pg_hba.conf . Você pode visualizá-lo, por exemplo
sudo cat /etc/postgresql/9.3/main/pg_hba.conf | more
.Se você estiver omitindo o nome do host em seu
psql
comando, poderá conectar-se se adicionar a seguinte entrada ao seu arquivo pg_hba.conf :[As linhas comentadas no arquivo pg_hba.conf começam com
#
.]Se você estiver incluindo o nome do host em seu
psql
comando, adicione esta entrada:Você precisa inserir a entrada antes que outras entradas correspondam à sua conexão via
psql
. Em caso de dúvida sobre onde colocá-lo, basta colocá-lo antes da primeira linha não comentada.Mais sobre o pg_hba.conf
Do PostgreSQL: Documentação: 9.3: O arquivo pg_hba.conf [bold ênfase meu]:
Observe que os registros não são correspondidos no método de autenticação. Portanto, se o seu arquivo pg_hba.conf contiver a seguinte entrada:
Então você não poderá se conectar via:
psql -u postgres
A menos que uma dessas entradas esteja no seu arquivo pg_hba.conf acima da entrada anterior:
fonte
No meu caso, a solução aqui: (para as pessoas interessadas) faça login no postgres:
Saudações
fonte
O problema ainda é o seu arquivo pg_hba.conf. Esta linha: Você pode encontrar este arquivo em / etc / postgres / varion / main
Estas são breves descrições de ambas as opções, de acordo com os documentos oficiais do PostgreSQL sobre métodos de autenticação.
Autenticação de mesmo nível
O método de autenticação por pares funciona obtendo o nome de usuário do sistema operacional do cliente a partir do kernel e usando-o como o nome de usuário permitido do banco de dados (com mapeamento opcional de nome de usuário). Este método é suportado apenas em conexões locais.
Autenticação de senha
Os métodos de autenticação baseados em senha são md5 e password. Esses métodos operam de maneira semelhante, exceto pela maneira como a senha é enviada pela conexão, ou seja, com hash MD5 e texto não criptografado, respectivamente.
Se você está preocupado com ataques de "sniffing" de senhas, o md5 é o preferido. Senha simples sempre deve ser evitada, se possível. No entanto, o md5 não pode ser usado com o recurso db_user_namespace. Se a conexão estiver protegida pela criptografia SSL, a senha poderá ser usada com segurança (embora a autenticação do certificado SSL possa ser uma escolha melhor se estiver dependendo do uso do SSL).
Após alterar este arquivo, não se esqueça de reiniciar o servidor PostgreSQL. Se você estiver no Linux, isso seria
sudo service postgresql restart.
fonte
Para fedora26 e postgres9.6
Primeiro, efetue log como root do usuário e, em seguida, insira no psql pelos seguintes comandos
então
em
psql
encontrar a localização de hba_file ==> significapg_hba.conf
no arquivo
pg_hba.conf
alterar o acesso do usuário a estefonte
minha solução no PostgreSQL 9.3 no Mac OSX no shell bash foi usar
sudo
para ir para a pasta de dados e depois anexar as linhas necessárias aopg_hba.conf
arquivo para permitir que todos os usuários sejam confiáveis e possam efetuar login. Foi isso que fiz :fonte
Se você fez tudo isso e ainda não funciona, verifique a validade desse usuário:
A autenticação de senha do Postgres falha
fonte
Passei mais tempo resolvendo esse erro que gostaria de admitir.
A ordem da configuração da autenticação no pg_hba.conf é relevante no seu caso, eu acho. O arquivo de configuração padrão inclui várias linhas em uma instalação de baunilha. Esses padrões podem corresponder às condições de suas tentativas de autenticação, resultando em uma falha na autenticação. Ele falha independentemente da configuração adicional adicionada no final do arquivo .conf.
Para verificar qual linha de configuração é usada, verifique se há mensagens no arquivo de log padrão. Você pode ver algo assim
Acontece que esta linha padrão está causando a rejeição.
tente comentar.
fonte
Uma dica é editar o pg_hba.conf
Para temporariamente
Neste ponto, você está pronto. Por segurança, vá e
volte e defina pg_hba.conf de volta para
fonte
Eu tive um problema semelhante e o corrigi no pg_hba.conf ao remover todos os métodos ident , mesmo para o endereço IP6 (apesar de eu ter apenas IP4 na máquina).
fonte
Eu tive o mesmo issuse depois de seguir isso: Configuração do PostgreSQL para desenvolvimento de Rails no Ubuntu 12.04
Eu tentei as outras respostas, mas tudo o que eu precisava fazer era: "config / database.yml"
fonte
Se você o estiver usando no CentOS, talvez seja necessário recarregar o postgres depois de fazer as soluções acima:
fonte
postgresql
systemctl status | grep postgres
Eu tive que reinstalar o pdAdmin para resolver esse problema
fonte
No Windows, se você não deseja editar o arquivo pb_gba.conf, ou seja, deixe o método para MD5 (padrão), crie um novo usuário executando esta consulta na ferramenta de consulta no PGadmin
então em cmd
onde dbname é seu db no postgresql
fonte
Isso funcionou para mim: http://tecadmin.net/fatal-ident-authentication-failed-for-user-postgres/#
fonte