Varje hash för användarlösenord sparas i tabellen pg_authid
. Den inkluderar hashalgoritmen som används för att omvandla lösenordet till dess hash.
När du ställer in password_encryption
i postgresql.conf ställer du in standardkrypteringen, det vill säga den som används när du skapar en användare eller när du (om)ställer in ditt lösenord. Tabellen pg_authid
är inte uppdaterad.
När du ändrar pg_hba.conf säger du att du endast ska acceptera lösenord som hashas med den givna metoden. Tabellen pg_authid
är inte uppdaterad.
Det finns en viktig anmärkning i dokumentet :
Så lösningen är att
- börja med de befintliga användarna, md5
- uppdatera postrgres.conf för att använda scram och ladda om konfigurationen
- återställ användarlösenordet:det kommer nu att sparas som scram i pg_authid
- du kan fortfarande använda md5 i pg_hba.conf
- när du är nöjd med övergången från md5 till scram, uppdatera pg_hba.conf för att ange scram istället för md5