Můžete zadat heslo již zahašované pomocí md5
, jak je uvedeno v dokumentu (CREATE ROLE):
ENCRYPTED UNECRYPTED Tato klíčová slova řídí, zda je heslo v systémových katalozích uloženo zašifrováno. (Pokud není zadáno ani jedno, výchozí chování je určeno konfiguračním parametrempassword_encryption.) Pokud je předložený řetězec hesla již ve formátu šifrovaném MD5, je uložen zašifrovaný tak, jak je bez ohledu na to, zda je zadáno ENCRYPTED nebo NECRYPTED (protože systém nedokáže dešifrovat zadaný řetězec zašifrovaného hesla). To umožňuje opětovné načtení zašifrovaných hesel během výpisu/obnovy.
Informace, která zde chybí, je, že řetězec zašifrovaný MD5 by měl tvořit heslo spojené s uživatelským jménem plus md5
na začátku.
Takže například vytvořit u0
s heslem foobar
, s vědomím, že md5('foobaru0')
je ac4bbe016b808c3c0b816981f240dcae
:
CREATE USER u0 PASSWORD 'md5ac4bbe016b808c3c0b816981f240dcae';
a poté se u0 bude moci přihlásit zadáním foobar
jako heslo.
Nemyslím si, že v současné době existuje způsob, jak použít SHA-256
místo md5
pro hesla PostgreSQL.