Mỗi băm mật khẩu người dùng được lưu trong bảng pg_authid
. Nó bao gồm thuật toán băm được sử dụng để chuyển đổi mật khẩu thành hàm băm của nó.
Khi đặt password_encryption
trong postgresql.conf, bạn đang đặt mã hóa mặc định, tức là mã hóa được sử dụng khi tạo người dùng hoặc khi (lại) đặt mật khẩu của bạn. Bảng pg_authid
không đã cập nhật.
Khi thay đổi pg_hba.conf, bạn đang nói chỉ chấp nhận mật khẩu được băm bằng phương pháp đã cho. Bảng pg_authid
không đã cập nhật.
Có một lưu ý quan trọng trong doc :
Vì vậy, giải pháp là
- bắt đầu với những người dùng hiện tại, md5
- cập nhật postrgres.conf để sử dụng scram và tải lại cấu hình
- đặt lại mật khẩu người dùng:bây giờ nó sẽ được lưu dưới dạng scram trong pg_authid
- bạn vẫn có thể sử dụng md5 trong pg_hba.conf
- khi hài lòng với việc chuyển từ md5 sang scram, hãy cập nhật pg_hba.conf để chỉ định scram thay vì md5