Greenplum/PostgreSQL pg_hba.conf 认证方法详解

发布于:2025-06-19 ⋅ 阅读:(20) ⋅ 点赞:(0)

Greenplum/PostgreSQL pg_hba.conf 认证方法详解

pg_hba.conf 文件中的 METHOD 字段指定了客户端认证方式,以下是各种认证方法的详细说明和配置示例。

常用认证方法

1. trust - 无条件允许连接

说明:不需要密码,完全信任连接
适用场景:本地开发环境、容器内部通信

# TYPE  DATABASE  USER  ADDRESS      METHOD
host    all       all   127.0.0.1/32 trust
local   all       all                trust

2. md5 - 密码认证(MD5加密)

说明:要求客户端提供MD5加密的密码
适用场景:需要基本安全的生产环境

host    all       all   0.0.0.0/0    md5

3. password/plaintext - 明文密码

说明:密码以明文传输(不安全)
适用场景:仅测试环境,不推荐生产使用

host    all       all   192.168.1.0/24 password

4. scram-sha-256 (PostgreSQL 10+)

说明:使用SCRAM-SHA-256加密,比md5更安全
适用场景:高安全要求的生产环境

host    all       all   10.0.0.0/8    scram-sha-256

5. peer - 操作系统用户认证

说明:使用客户端操作系统用户名
适用场景:本地单用户环境

local   all       all                peer

6. ident - Ident协议认证

说明:通过ident服务器验证
适用场景:特定网络环境

host    all       all   192.168.1.0/24 ident

7. cert - SSL客户端证书

说明:要求客户端提供SSL证书
适用场景:高安全要求的远程连接

hostssl all       all   0.0.0.0/0     cert

特殊认证方法

8. gss/sspi - Kerberos认证

host    all       all   0.0.0.0/0     gss

9. ldap - LDAP认证

host    all       all   0.0.0.0/0     ldap ldapserver=ldap.example.com ldapprefix="cn=" ldapsuffix=",dc=example,dc=com"

10. radius - RADIUS认证

host    all       all   0.0.0.0/0     radius radiusserver=radius.example.com radiussecret=secret

配置示例

生产环境推荐配置

# TYPE  DATABASE  USER       ADDRESS         METHOD
local   all       postgres                   peer
local   all       all                       scram-sha-256
host    all       all       127.0.0.1/32    scram-sha-256
host    all       all       ::1/128         scram-sha-256
hostssl all       all       10.0.0.0/8      scram-sha-256
hostssl all       admins    0.0.0.0/0       cert

开发环境简化配置

local   all       all                       trust
host    all       all       192.168.1.0/24  md5

方法安全性比较

方法 安全性 加密方式 适用版本
trust 所有
md5 MD5哈希 所有
scram-sha-256 SHA-256 PG10+
password 明文 所有
cert 最高 SSL证书 所有

配置后操作

  1. 重新加载配置:

    # Greenplum
    gpstop -u
    
    # PostgreSQL
    pg_ctl reload
    
  2. 验证配置:

    psql -h [host] -U [user] -d [db]
    

注意:md5 方法在Greenplum中仍然广泛使用,但新部署建议使用 scram-sha-256 以获得更好安全性。


网站公告

今日签到

点亮在社区的每一天
去签到