Часто встречающиеся проблемы и пути их устранения
Проблема:
Пользователь не может успешно подключиться к хосту с использованием учетной записи kmadmin_pg
при локальном подключении, даже если вводится правильный пароль. Возникает ошибка:
$ su - kmadmin_pg
Пароль:
Срок действия учетной записи истек; обратитесь к системному администратору
su: Сбой при проверке подлинности
При просмотре параметров пароля пользователя kmadmin_pg
видно, что пароль имеет ограничения срока действия, что в итоге может приводить к блокировке пользователя:
$ sudo chage -l kmadmin_pg
Last password change : Aug 01, 2023
Password expires : Sep 10, 2023
Password inactive : Dec 09, 2023
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 40
Number of days of warning before password expires : 7
Решение:
После установки снимите ограничения срока действия пароля для созданного пользователя, выполнив команду:
$ sudo chage -E -1 -I -1 -M -1 -m -1 -W -1 kmadmin_pg
$ sudo chage -l kmadmin_pg
Last password change : Nov 09, 2023
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : -1
Maximum number of days between password change : -1
Number of days of warning before password expires : -1
Проблема:
Во время системного обслуживания кластера Pangolin и выполнения административных задач, связанных с хранилищем паролей, возникают следующие ошибки в журнале postgresql
:
Ключевой момент данного сценария заключается в том, что параметр password_encryption
был установлен в значение md5
, а не scram-sha-256
. Во время системных работ конфигурационные настройки кластера были приведены к следующему виду:
-
Параметр
password_encryption
установлен в значениеmd5
. -
Содержимое файла
pg_hba.conf
выглядит следующим образом:hostssl all postgres 127.0.0.1/32 cert
hostssl all postgres 'master_ip' cert
hostssl all postgres 'replica_ip' cert
hostssl replication postgres 127.0.0.1/32 cert
hostssl replication postgres 'master_ip' cert
hostssl replication postgres 'replica_ip' cert
hostssl all +as_TUZ 0.0.0.0/0 md5 clientcert=1
host all DB_MONITOR 0.0.0.0/0 md5
host all +all-sa-pam-group 0.0.0.0/0 ldap ldapserver=<ldapserver_name> ldapport=<ldapport> ldapprefix="cn=" ldapsuffix="<@ldapsuffix>"
host all zabbix_oasubd,pgbouncer,monitoring_php,auditor 0.0.0.0/0 md5
host all +as_admin, +as_admin_read 0.0.0.0/0 ldap ldapserver="<ldapserver_name>" ldapsuffix="<@ldapsuffix>"
host all all <IP-address> md5
host all all <IP-address> md5
host all all <IP-address> md5
host all all <IP-address> md5
host all patroni 127.0.0.1/32 scram-sha-256
host all patroni 'master_ip' scram-sha-256
host all patroni 'replica_ip' scram-sha-256
host replication patroni 127.0.0.1/32 scram-sha-256
host replication patroni 'master_ip' scram-sha-256
host replication patroni 'replica_ip' scram-sha-256
host all cron, backup_user 0.0.0.0/0 scram-sha-256 -
Пароль пользователя
patroni
, указанный вpostgres.yml
, имеет значение форматаSCRAM-SHA-256$4096:...
.
Решение:
Для корректного изменения пароля пользователя patroni
необходимо выполнить следующие шаги:
- Измените пароль пользователя
patroni
в базе данных. - Установите параметр
password_encryption
в значениеscram-sha-256
. - Запишите новый пароль пользователя
patroni
в хранилище паролей.
Внимание!
Если в файле
pg_hba.conf
метод аутентификации установлен вmd5
, но пользователь предоставляет пароль в форматеscram-sha-256
, то подключение будет использовано методомscram-sha-256
. Это сделано для облегчения перехода сmd5
наscram-sha-256
.