pg_hba.conf、pool_hba.conf 以及 pool_passwd 三者间的关系

pg_hba.conf、pool_hba.conf 以及 pool_passwd 三者间的关系:php

1.pg_hba.conf、pool_hba.conf 以及 pool_passwd 三者关系
pg_hba.conf 是 PostgreSQL 数据库的客户端认证配置文件,用于对访问 PostgreSQL 数据库的请求实施访问认证控制。
pool_hba.conf 是 PGPool-II 中间件的客户端认证配置文件,用于对访问 PGPool-II 中间件的请求实施访问认证控制。同时,由于 PGPool-II 从架构上位于 PostgreSQL 以前,所以请求须要先经过 PGPool-II 的认证控制,随后经过 PostgreSQL 的认证控制。
pool_passwd 是 PGPool-II 的认证文件。一方面,因为 PGPool-II 没法获取 PostgreSQL 数据库上的用户密码信息,所以其经过检查 pool_passwd 内用户名及密码的方式,校验请求输入的用户名及密码是否正确。另外一方面,当请求经过 PGPool-II 认证后,PGPool-II 将利用 pool_passwd 内保存的用户名及密码,链接后端 PostgreSQL 数据库,进行请求。(待验证)
2.pg_hba.conf、pool_hba.conf 以及 pool_passwd 三者对认证结果的影响
以 md5 认证控制方式为例,pg_hba.conf、pool_hba.conf 以及 pool_passwd 三者对认证结果的影响以下表所示。
pg_hba.conf 设置的认证控制方式 pool_hba.conf 设置的认证控制方式 用户密码值是否存在于pool_passwd 结果
md5 md5 yes PGPool-II 及 PostgreSQL 层面均进行 md5 认证。 
md5 md5 no PGPool-II 及 PostgreSQL 层面均进行 md5 认证,但因为用户密码没有保存于 pool_passwd 文件中,致使 PGPool-II 层验证失败,报错 "MD5" authentication with pgpool failed for user "XX"
md5 trust yes/no 当 PGPool-II 工做于复制、主备、并行等模式时,没法进行 md5 认证。PGPool-II 接收到请求后,直接利用 pool_passwd 内的用户密码值,对后端 PostgreSQL 进行请求。
对于非上述状况的,则采用 md5 认证。
trust md5 yes PGPool-II 层面验证成功,直接对无须验证的 PostgreSQL 后端数据库发起请求。
trust md5 no PGPool-II 层面验证失败,报错 "MD5" authentication with pgpool failed for user "XX"
trust trust yes/no 不作任何验证
 
参考资料:
(1).https://pgpool.net/mediawiki/index.php/FAQ#I_created_pool_hba.conf_and_pool_passwd_to_enable_md5_authentication_through_pgpool-II_but_it_does_not_work._Why.3F
相关文章
相关标签/搜索