Перейти к основному содержимому

Часто встречающиеся проблемы и пути их устранения

Истечение срока действия пароля учетной записи kmadmin_pg

Пользователь не может успешно подключиться к хосту с использованием учетной записи 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

Ошибки аутентификации patroni при восстановлении кластера

Во время системного обслуживания кластера Pangolin и выполнения административных задач, связанных с хранилищем паролей, возникают следующие ошибки в журнале postgresql:

FATAL:  password authentication failed for user "patroni"
password retrieved from file "(null)"
2022-12-15 21:19:15,869 ERROR: Error when fetching backup: pg_basebackup exited with code=1
2022-12-15 21:19:15,870 ERROR: failed to bootstrap from leader '<address>'
2022-12-15 21:19:15,870 INFO: Removing data directory: /pgdata/04/data/
2022-12-15 21:19:20,679 INFO: Lock owner: <address>; I am pdled-
2022-12-15 21:19:20,764 INFO: trying to bootstrap from leader '<address>'
pg_basebackup: FATAL: password authentication failed for user "patroni"
password retrieved from file "(null)"
FATAL: password authentication failed for user "patroni"
password retrieved from file "(null)"
2022-12-15 21:19:20,811 ERROR: Error when fetching backup: pg_basebackup exited with code=1
2022-12-15 21:19:20,812 WARNING: Trying again in 5 seconds
pg_basebackup: FATAL: password authentication failed for user "patroni"
password retrieved from file "(null)"
FATAL: password authentication failed for user "patroni"
password retrieved from file "(null)"

Ключевой момент данного сценария заключается в том, что параметр password_encryption был установлен в значение md5, а не scram-sha-256. Во время системных работ конфигурационные настройки кластера были приведены к следующему виду:

  1. Параметр password_encryption установлен в значение md5.

  2. Содержимое файла 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
  3. Пароль пользователя patroni, указанный в postgres.yml, имеет значение формата SCRAM-SHA-256$4096:....

Решение:

Для корректного изменения пароля пользователя patroni необходимо выполнить следующие шаги:

  1. Измените пароль пользователя patroni в базе данных.
  2. Установите параметр password_encryption в значение scram-sha-256.
  3. Запишите новый пароль пользователя patroni в хранилище паролей.
Внимание!

Если в файле pg_hba.conf метод аутентификации установлен в md5, но пользователь предоставляет пароль в формате scram-sha-256, то подключение будет использовано методом scram-sha-256. Это сделано для облегчения перехода с md5 на scram-sha-256.