当前位置:   article > 正文

Postgres pg_hba.conf文件

pg_hba.conf

什么是pg_hba文件?

HBA全称是host-based authentication(基于主机的认证)。在initdb初始化数据目录时,它会在PG数据目录下安装一个默认的pg_hba.conf文件。pg_hba.conf默认路径是/var/lib/pgsql/<pg_version>/data

  1. [root@node01 vagrant]# ps -ef|grep postgres
  2. postgres 22899 1 0 16:48 ? 00:00:00 /usr/pgsql-11/bin/postmaster -D /var/lib/pgsql/11/data/
  3. [root@node01 vagrant]# ll /var/lib/pgsql/11/data/pg_hba.conf
  4. -rw-r--r--. 1 vagrant vagrant 911 Dec 6 16:48 /var/lib/pgsql/11/data/pg_hba.conf

pg_hba.conf中每条记录指定一种连接类型、一个客户端 IP 地址范围(如果和连接类型相关)、一个数据库名、一个用户名以及对匹配这些参数的连接使用的认证方法。第一条匹配连接类型、客户端地址、连接请求的数据库和用户名的记录将被用于执行认证。这个过程没有“落空”或者“后备”的说法:如果选择了一条记录而且认证失败,那么将不再考虑后面的记录。如果没有匹配的记录,那么访问将被拒绝。

记录格式一般是:

TYPE  DATABASE        USER            ADDRESS                 METHOD

各个域的具体含义参考http://www.postgres.cn/docs/14/auth-pg-hba-conf.html

常用配置

  1. # 允许本地系统上的任何用户
  2. # 通过 Unix 域套接字以任意
  3. # 数据库用户名连接到任意数据库(本地连接的默认值)。
  4. #
  5. # TYPE DATABASE USER ADDRESS METHOD
  6. local all all trust
  7. # 相同的规则,但是使用本地环回 TCP/IP 连接。
  8. #
  9. # TYPE DATABASE USER ADDRESS METHOD
  10. host all all 127.0.0.1/32 trust
  11. # 和前一行相同,但是使用了一个独立的掩码列
  12. #
  13. # TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
  14. host all all 127.0.0.1 255.255.255.255 trust
  15. # IPv6 上相同的规则
  16. #
  17. # TYPE DATABASE USER ADDRESS METHOD
  18. host all all ::1/128 trust
  19. # 使用主机名的相同规则(通常同时覆盖 IPv4 和 IPv6)。
  20. #
  21. # TYPE DATABASE USER ADDRESS METHOD
  22. host all all localhost trust
  23. # 允许来自任意具有 IP 地址192.168.93.x 的主机上任意
  24. # 用户以 ident 为该连接所报告的相同用户名连接到
  25. # 数据库 "postgres"(通常是操作系统用户名)。
  26. #
  27. # TYPE DATABASE USER ADDRESS METHOD
  28. host postgres all 192.168.93.0/24 ident
  29. # 如果用户的口令被正确提供,允许来自主机 192.168.12.10
  30. # 的任意用户连接到数据库 "postgres"。
  31. #
  32. # TYPE DATABASE USER ADDRESS METHOD
  33. host postgres all 192.168.12.10/32 scram-sha-256
  34. # 如果用户的口令被正确提供,允许 example.com 中主机上
  35. # 的任意用户连接到任意数据库。
  36. #
  37. # 为大部分用户要求SCRAM认证,但是用户'mike'是个例外,
  38. # 他使用的是不支持SCRAM认证的旧客户端。
  39. #
  40. # TYPE DATABASE USER ADDRESS METHOD
  41. host all mike .example.com md5
  42. host all all .example.com scram-sha-256
  43. # 如果没有前面的 "host" 行,这三行
  44. # 将拒绝所有来自 192.168.54.1的连接(因为那些项将首先被匹配),
  45. # 但是允许来自互联网其他任何地方的
  46. # GSSAPI-encrypted连接。零掩码导致主机IP 地址中的所有位都不会被考虑,
  47. # 因此它匹配任意主机。未加密GSSAPI连接
  48. # (which "跳转"到第三行是因为"hostgssenc" 仅匹配加密的 GSSAPI 连接) 是被允许的,但只能来自192.168.12.10.
  49. #
  50. # TYPE DATABASE USER ADDRESS METHOD
  51. host all all 192.168.54.1/32 reject
  52. hostgssenc all all 0.0.0.0/0 gss
  53. host all all 192.168.12.10/32 gss
  54. # 允许来自 192.168.x.x 主机的用户连接到任意数据库,如果它们能够
  55. # 通过 ident 检查。例如,假设 ident说用户是 "bryanh" 并且他要求以
  56. # PostgreSQL 用户 "guest1" 连接,如果在 pg_ident.conf 有一个映射
  57. # "omicron" 的选项说 "bryanh" 被允许以 "guest1" 连接,则该连接将被允许。
  58. #
  59. # TYPE DATABASE USER ADDRESS METHOD
  60. host all all 192.168.0.0/16 ident map=omicron
  61. # 如果这些是本地连接的唯一三行,它们将允许本地用户只连接到它们
  62. # 自己的数据库(与其数据库用户名同名的数据库),不过管理员和角
  63. # 色 "support" 的成员除外(它们可以连接到所有数据库)。文件
  64. # $PGDATA/admins 包含一个管理员名字的列表。在所有情况下都要求口令。
  65. #
  66. # TYPE DATABASE USER ADDRESS METHOD
  67. local sameuser all md5
  68. local all @admins md5
  69. local all +support md5
  70. # 上面的最后两行可以被整合为一行:
  71. local all @admins,+support md5
  72. # 数据库列也可以用列表和文件名:
  73. local db1,db2,@demodbs all md5

下面是我生产环境上的配置,仅供参考。它允许本机免密登录postgres用户,用于管理员操作。其他用户需要md5加密,允许所有的IP段。

  1. # TYPE DATABASE USER ADDRESS METHOD
  2. # "local" is for Unix domain socket connections only
  3. #local all all trust
  4. # IPv4 local connections:
  5. host all postgres 127.0.0.1/32 trust
  6. host all all 127.0.0.1/32 md5
  7. host all all all md5
  8. # IPv6 local connections:
  9. host all postgres ::1/128 trust
  10. host all all ::1/128 md5
  11. # Allow replication connections from localhost, by a user with the
  12. # replication privilege.
  13. #local replication all trust
  14. host replication all 127.0.0.1/32 trust
  15. host replication all ::1/128 trust

参考

http://www.postgres.cn/docs/14/auth-pg-hba-conf.html

PostgreSQL: Documentation: 15: 21.1. The pg_hba.conf File 

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号