PostgreSQL - Senha hash md5
Salve Pessoal,
Vê se alguem pode me ajudar:
Tenho um servidor rodando PostgreSQL . Ao criar um usuário eu faço da seguinte maneira:
CREATE USER vinicius with encrypted password 'senha';
Ou seja com a senha criptografada:
select passwd from pg_shadow where usename ='vinicius';
passwd
-------------------------------------
md5fe82e80e16597917f856743f9c3adae6
E é isso mesmo o que eu quero. POrem eu preciso migrar este usuário de servidor sem ter que saber qual é a senha que ele tem.
Ou seja, eu preciso criar o usuário no servidor novo com esta criptografia, então eu faço (no server destino):
CREATE USER vinicius with password 'md5fe82e80e16597917f856743f9c3adae6';
A minha intenção é que ele fique com a mesma criptografia do servidor antigo, logo com a mesma senha. E ele realmente fica:
select passwd from pg_shadow where usename like 'vini%';
passwd
-------------------------------------
md5fe82e80e16597917f856743f9c3adae6
md5fe82e80e16597917f856743f9c3adae6
Porem não aceita a senha de forma alguma no servidor novo.
Utilizo o cliente psql.
Alguem pode me ajudar?
Valeu, Abraços!
PostgreSQL - Senha hash md5
No primeiro caso você informou que esse usuário usava uma senha criptografada, então o sgbd vai pegar o dado informado, criptografar e comparar com o armazenado.
No segundo caso, você não disse que é criptografado, portanto o sgbd vai comparar o que foi digitado com o armazenado...
Você tentou fazer um export/import do pg_shadow ??? Ele tem que trazer os usuários com a senha criptografada...
PostgreSQL - Senha hash md5
Então amigo,
Na verdade não interessa se o segundo usuário está sendo criado com encrypted ou não, pois o sgbd entende que a senha é md5 e cria com a senha exatamente como está.
Eu descobri qual é o erro, na verdade foi um vacilo meu mesmo.
Estou fazendo testes com usuários diferentes. Logo se eu crio um user com uma senha criptografada eu não posso simplesmente copiar a criptografia e criar um outro user com nome diferente e com a mesma senha criptografada. Eu já tinha lido isso na documentação, Comi bola mesmo.
Ou seja, caso eu crie um usuário chamdo "vinicius" com a senha "linux" que criptografada fica "md5265e37fd72eaca58b43a02b937ddbc76" eu posso criar um usuário chamado vinicius e inserir diretamente a senha criptografada em outro servidor.
Porem eu não posso criar um usuário chamafo teste por exemplo com esta criptografia.
Mas valeu,
Fiz o restore no outro server e o usuário ficou com a senha dele certinho.
Abraços.