简介
本文档介绍如何在高可用性(HA)设置中要求密码才能访问postgres用户。
先决条件
要求
本文档没有任何特定的要求。
使用的组件
本文档中的信息基于以下软件和硬件版本:
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
问题:CCM数据库上的Postgres用户不需要密码
在HA设置中,Cloud Center Manager(CCM)数据库(DB)与CCM中对于4.8.0.1以前的版本,或者如果从旧版本升级到4.8.0.1(4.8.0.1之后的全新安装不会受到影响),CCM数据库上的postgres用户在连接到它时不需要密码。这是潜在的安全漏洞。
解决方案
在每个数据库实例上运行以下命令:
echo "*:*:*:replication:password" >> /root/.pgpass
echo "*:*:*:replication:password" >> ~postgres/.pgpass
sed -i s/\(0.0.0.0.*\)trust/\1md5' /var/lib/pgsql/9.5/data/pg_hba.conf
确认pg_hba.conf已将信任的所有实例更改为md5,如果未更改,请手动将单词trust更改为md5。
su - postgres
/usr/pgsql-9.5/bin/pg/ctl reload
\q
这会重新加载配置更改的postgres,并确保数据库未打开以进行无密码身份验证。
您可以确认问题是否已解决并登录到CCM并运行此命令。如果系统提示您输入postgres密码,请确保更改成功。
psql -h IP_ADDRESS_OF_DATABASE -U postgres