Możesz podać hasło już zahaszowane za pomocą md5 , jak wspomniano w dokumencie (UTWÓRZ ROLĘ):
ENCRYPTED UNENCRYPTED Te słowa kluczowe określają, czy hasło jest przechowywane w postaci zaszyfrowanej w katalogach systemowych. (Jeśli nie określono żadnej z tych opcji, domyślne zachowanie jest określane przez parametr konfiguracyjnypassword_encryption.) Jeśli prezentowany ciąg hasła jest już w formacie zaszyfrowanym MD5, jest przechowywany w postaci zaszyfrowanej , niezależnie od tego, czy określono zaszyfrowany lub nieszyfrowany (ponieważ system nie może odszyfrować określonego zaszyfrowanego ciągu hasła). Pozwala to na ponowne ładowanie zaszyfrowanych haseł podczas zrzutu/przywracania.
Brakuje tutaj informacji, że ciąg zaszyfrowany MD5 powinien być hasłem połączonym z nazwą użytkownika plus md5 na początku.
Na przykład, aby utworzyć u0 z hasłem foobar , wiedząc, że md5('foobaru0') to ac4bbe016b808c3c0b816981f240dcae :
CREATE USER u0 PASSWORD 'md5ac4bbe016b808c3c0b816981f240dcae';
a wtedy u0 będzie mógł się zalogować, wpisując foobar jako hasło.
Nie sądzę, że obecnie istnieje sposób na użycie SHA-256 zamiast md5 dla haseł PostgreSQL.