Можете да предоставите паролата, която вече е хеширана с md5 , както е посочено в документа (СЪЗДАВАНЕ НА РОЛЯ):
КРИФИРАНО НЕШИРИРОВАНО Тези ключови думи контролират дали паролата се съхранява криптирана в системните каталози. (Ако нито едно не е посочено, поведението по подразбиране се определя от конфигурационния параметърpassword_encryption.) Ако представеният низ с парола вече е в шифрован формат MD5, тогава той се съхранява криптиран такъв, какъвто е , независимо дали е посочено ENCRYPTED или UNENCRYPTED (тъй като системата не може да дешифрира посочения низ от криптирана парола). Това позволява презареждане на криптирани пароли по време на изхвърляне/възстановяване.
Информацията, която липсва тук, е, че MD5-криптираният низ трябва да бъде паролата, свързана с потребителското име, плюс md5 в началото.
Така например да създадете u0 с паролата foobar , знаейки, че md5('foobaru0') е ac4bbe016b808c3c0b816981f240dcae :
CREATE USER u0 PASSWORD 'md5ac4bbe016b808c3c0b816981f240dcae';
и тогава u0 ще може да влезе, като напише foobar като парола.
Не мисля, че в момента има начин да се използва SHA-256 вместо md5 за пароли за PostgreSQL.