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


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

    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
     
     
  • 相关阅读:
    Oracle创建上下文 SYS_CONTEXT
    闪回版本查询
    物化视图创建案例
    Oracle 多租户环境学习路线图
    【Mysql MHA】CentOS7.6+Mysql8.0.16 入坑
    【翻译】--19C Oracle 安装指导
    Docker(3)---常用命令
    Docker(2)---安装(设置镜像加速器)
    Docker(1)---基础概念
    AMQP高级消息队列协议
  • 原文地址:https://www.cnblogs.com/autopenguin/p/10069880.html
Copyright © 2020-2023  润新知