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

J'ai essayé de changer postgresql md5 en scram-sha-256 et l'authentification par mot de passe FATAL a échoué

Chaque hachage de mot de passe utilisateur est enregistré dans la table pg_authid . Il inclut l'algorithme de hachage utilisé pour transformer le mot de passe en son hachage.

Lors de la définition du password_encryption dans postgresql.conf, vous définissez le cryptage par défaut, c'est-à-dire celui utilisé lors de la création d'un utilisateur ou lors de la (re)définition de votre mot de passe. Le tableau pg_authid n'est pas mis à jour.

Lors de la modification de pg_hba.conf, vous dites d'accepter uniquement les mots de passe hachés à l'aide de la méthode donnée. Le tableau pg_authid n'est pas mis à jour.

Il y a une note importante dans la doc :

Donc la solution est de

  1. commencez par les utilisateurs existants, md5
  2. mettre à jour postrgres.conf pour utiliser scram et recharger la configuration
  3. réinitialisez le mot de passe de l'utilisateur :il sera désormais enregistré en tant que scram dans pg_authid
  4. vous pouvez toujours utiliser md5 dans pg_hba.conf
  5. lorsque vous êtes satisfait du passage de md5 à scram, mettez à jour pg_hba.conf pour spécifier scram au lieu de md5