PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Création d'un utilisateur avec un mot de passe crypté dans PostgreSQL

Vous pouvez fournir le mot de passe déjà haché avec md5 , comme dit dans la doc (CREATE ROLE):

CRYPTÉ NON CRYPTÉ Ces mots clés contrôlent si le mot de passe est stocké crypté dans les catalogues système. (Si ni l'un ni l'autre n'est spécifié, le comportement par défaut est déterminé par le paramètre de configurationpassword_encryption.) Si la chaîne de mot de passe présentée est déjà au format crypté MD5, elle est stockée cryptée telle quelle , que ENCRYPTED ou UNENCRYPTED soit spécifié (puisque le système ne peut pas déchiffrer la chaîne de mot de passe chiffrée spécifiée). Cela permet de recharger les mots de passe chiffrés lors du vidage/restauration.

L'information qui manque ici est que la chaîne cryptée MD5 doit être le mot de passe concaténé avec le nom d'utilisateur, plus md5 au début.

Ainsi par exemple pour créer u0 avec le mot de passe foobar , sachant que md5('foobaru0') est ac4bbe016b808c3c0b816981f240dcae :

CREATE USER u0 PASSWORD 'md5ac4bbe016b808c3c0b816981f240dcae';

puis u0 pourra se connecter en tapant foobar comme mot de passe.

Je ne pense pas qu'il existe actuellement un moyen d'utiliser SHA-256 au lieu de md5 pour les mots de passe PostgreSQL.