estou com um problema no validacao do usuario e senha na conexao com o postgres.
o usuario valida, a senha nao, ou seja, o usuario tenho que por um que exista no postgres, a senha posso digitar qualquer coisa que a conexao é feita, como resolver isso ???
Não entendi. Aqui eu tenho uma senha para acessar o PostgreSQL, ou seja, só consigo acessar se tiver essa senha.
M
marcoscorsoPJ
eh o seguinte …
digamos que no psotgres eu tenho o usuario 123 com senha 456
se eu digitar um usuario diferente de 123 ele da erro que nao existe esse usuario …
se eu digitar qualquer senha, igual ou diferente de 456 , ele faz a conexao com o postgres …
G
Guilherme_MelloPJ
Aqui, quando eu coloco uma senha errada o PostgreSQL retorna uma mensagem de erro informando que a autenticação de senha falhou para tal usuário.
Muito estranho isso, nunca aconteceu comigo. Já deu uma olhada na documentação do PostgreSQL ?
M
marcoscorsoPJ
to com o postgres 8.1, quando eu abro p pgadmin e coloco a senha errada, nao consigo acessar, mas no meu programa, se eu coloco a senha errada, ele conecta normalmente …
M
marcoscorsoPJ
ai vai a minha classe conexao :
try{Class.forName("org.postgresql.Driver");Stringjunto="jdbc:postgresql://localhost:5432/teste";con=DriverManager.getConnection(junto,usuario,senha);stmt=con.createStatement();JOptionPane.showMessageDialog(null,"Conexão efetuada com sucesso !");//new menu(usuario,sistema);}catch(Exceptionee){JOptionPane.showMessageDialog(null,"Não foi possível conectar ao banco de dados !\n"+ee.getMessage());ee.printStackTrace();}
C
CD1PJ
Olá marcoscorso,
Dê uma olhada no arquivo pg_hba.conf, no diretório “data” da instalação do seu PostgreSQL (o nome desse diretório pode até ser outro, mas “data” é o padrão). Nele, você configura as permissões de acesso por computador/usuário/banco. Provavelmente, em alguma linha vai ter “trust”, que significa pra ele não verificar a senha naquela situação. Nessa linha deve ter algum IP (provavelmente localhost), um nome de usuário e de um banco de dados (ou coringas). Aí isso quer dizer que desse computador (localhost) quando se usa o usuário especificado pra usar o banco especificado, não peça senha. O pgadmin deve estar em outra máquina (que não tenha o trust no pg_hba) ou até mesmo da própria máquina, se você tiver usando um outro IP pra acessar você mesmo (vários IPs podem dar na própria máquina, no pg_hba.conf deve estar cadastrado só um).
Resumindo: tire o “trust” e coloque “md5” pra ele validar a senha nas condições que ele não está verificando, ou refaça esse arquivo, colocando algo útil (tipo, se de localhost o usuário marcoscorso tentar acessar o banco marcoscorsodb, não peça senha certa… algo do tipo).
Até mais,
F
FantasmaPJ
Se vc usa linux tente trocar a senha do usuário postgres. Se vc usa Windows tente configurar uma nova senha para o usuário postgres do SGBD.
Espero ter ajudado.
E
edgardksbPJ
Bom apenas para reforçar, já passei por isso.
A solução é exatamente isso que o CD1 disse.