Хешът на всяка потребителска парола се записва в таблицата pg_authid
. Той включва алгоритъма за хеширане, който се използва за трансформиране на паролата в нейния хеш.
Когато задавате password_encryption
в postgresql.conf вие задавате криптирането по подразбиране, т.е. това, което се използва при създаване на потребител или при (повторно) задаване на вашата парола. Таблицата pg_authid
ене актуализиран.
Когато променяте pg_hba.conf, вие казвате да приемате само пароли, хеширани чрез дадения метод. Таблицата pg_authid
ене актуализиран.
Има важна забележка в doc :
Така че решението е да
- започнете със съществуващите потребители, md5
- актуализирайте postrgres.conf, за да използвате scram и презаредете конфигурацията
- нулирайте паролата на потребителя:сега тя ще бъде запазена като scram в pg_authid
- все още можете да използвате md5 в pg_hba.conf
- когато сте доволни от преминаването от md5 към scram, актуализирайте pg_hba.conf, за да посочите scram вместо md5