Validar acesso postgres

9 respostas
M

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 ???

9 Respostas

G

Não entendi. Aqui eu tenho uma senha para acessar o PostgreSQL, ou seja, só consigo acessar se tiver essa senha.

M

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

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

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

ai vai a minha classe conexao :

try {
			Class.forName("org.postgresql.Driver");
			String junto = "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 (Exception ee) {
			JOptionPane.showMessageDialog(null,"Não foi possível conectar ao banco de dados !\n" + ee.getMessage());
			ee.printStackTrace();
		}
C

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, :wink:

F

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

Bom apenas para reforçar, já passei por isso.
A solução é exatamente isso que o CD1 disse.

trocar “trust” por “md5” no arquivo pg_hba.conf

Até mais.

M

fiz exatamente isso e deu certo …

trocar “trust” por “md5” no arquivo pg_hba.conf

obrigado pela ajuda pessoal …

Criado 4 de dezembro de 2006
Ultima resposta 4 de dez. de 2006
Respostas 9
Participantes 5