+ Responder ao Tópico



  1. #1

    Padrão 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!

  2. #2

    Padrão 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...

  3. #3

    Padrão 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.