Você pode fornecer a senha já com hash com
md5
, como dito no doc (CREATE ROLE):
ENCRYPTED UNENCRYPTED Estas palavras-chave controlam se a senha é armazenada criptografada nos catálogos do sistema. (Se nenhum for especificado, o comportamento padrão é determinado pelo parâmetro de configuração senha_encriptação.) Se a string de senha apresentada já estiver no formato criptografado em MD5, ela será armazenada criptografada como está , independentemente de ENCRYPTED ou UNENCRYPTED ser especificado (já que o sistema não pode descriptografar a string de senha criptografada especificada). Isso permite o recarregamento de senhas criptografadas durante o dump/restauração.
A informação que está faltando aqui é que a string criptografada em MD5 deve ser a senha concatenada com o nome de usuário, mais
md5
no inicio. Por exemplo, para criar
u0
com a senha foobar
, sabendo que md5('foobaru0')
é ac4bbe016b808c3c0b816981f240dcae
:CREATE USER u0 PASSWORD 'md5ac4bbe016b808c3c0b816981f240dcae';
e então u0 poderá fazer login digitando
foobar
como a senha. Não acho que exista atualmente uma maneira de usar
SHA-256
em vez de md5
para senhas do PostgreSQL.