Puoi fornire la password già sottoposta a hash con md5
, come detto nel doc (CREA RUOLO):
ENCRYPTED UNENCRYPTED Queste parole chiave controllano se la password viene memorizzata crittografata nei cataloghi di sistema. (Se non viene specificato nessuno dei due, il comportamento predefinito è determinato dal parametro di configurazione crittografia_password.) Se la stringa della password presentata è già in formato crittografato MD5, viene archiviata crittografata così com'è , indipendentemente dal fatto che sia specificato ENCRYPTED o UNENCRYPTED (poiché il sistema non è in grado di decifrare la stringa di password crittografata specificata). Ciò consente di ricaricare le password crittografate durante il dump/ripristino.
L'informazione che manca qui è che la stringa crittografata con MD5 dovrebbe essere la password concatenata con il nome utente, più md5
all'inizio.
Quindi, ad esempio, per creare u0
con la password foobar
, sapendo che md5('foobaru0')
è ac4bbe016b808c3c0b816981f240dcae
:
CREATE USER u0 PASSWORD 'md5ac4bbe016b808c3c0b816981f240dcae';
e poi u0 potrà accedere digitando foobar
come password.
Non credo che al momento ci sia un modo per usare SHA-256
invece di md5
per le password PostgreSQL.