md5ですでにハッシュ化されているパスワードを指定できます 、ドキュメント(CREATE ROLE)で述べられているように:
ENCRYPTED UNENCRYPTEDこれらのキーワードは、パスワードがシステムカタログに暗号化されて保存されるかどうかを制御します。 (どちらも指定されていない場合、デフォルトの動作は構成parameterpassword_encryptionによって決定されます。)提示されたパスワード文字列がすでにMD5暗号化形式である場合、そのまま暗号化されて保存されます 、ENCRYPTEDまたはUNENCRYPTEDが指定されているかどうかに関係なく(システムは指定された暗号化されたパスワード文字列を復号化できないため)。これにより、ダンプ/復元中に暗号化されたパスワードを再ロードできます。
ここで欠落している情報は、MD5で暗号化された文字列は、ユーザー名に加えてmd5と連結されたパスワードである必要があるということです。 最初に。
たとえば、u0を作成します パスワードfoobarを使用 、md5('foobaru0')であることを知っている はac4bbe016b808c3c0b816981f240dcae :
CREATE USER u0 PASSWORD 'md5ac4bbe016b808c3c0b816981f240dcae';
その後、u0はfoobarと入力してログインできるようになります パスワードとして。
現在、SHA-256を使用する方法はないと思います md5の代わりに PostgreSQLパスワードの場合。