【PostgreSQL】对于pg_hba.conf文件的说明

首先

在PostgreSQL中,客户端需要进行身份验证才能访问服务器。

    • クライアント認証とは

 

    例えば、クライアントが自身のIDとパスワードをサーバーに提供します。サーバーは、これらの情報がデータベースに格納されている情報と一致するかどうかを確認します。もし一致した場合、クライアントの身元が確認され、リクエストされたサービスへのアクセスが許可されます。

在PostgreSQL中,通过pg_hba.conf文件进行管理。

pg_hba.conf是PostgreSQL数据库集群中的一个配置文件。

pg_hba.conf文件的内容如下所示。

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     md5
host    replication     all             127.0.0.1/32            ident
host    replication     all             ::1/128                 ident

特点如下:

    • 1行につき1つのレコード

 

    • スペース区切り

 

    • #以降の文字は無視される

 

    • 最初に条件を満たした認証方式で認証を行う

 

    条件を満たさなかった場合に、認証は拒否される

另外,在写作顺序方面,我们会先写入范围较小的目标地址,然后是条件较宽松的认证方式。

认证方式有几种选择。

設定値種別説明trust無条件無条件で許可reject無条件無条件で拒否md5パスワード認証md5暗号化によるパスワード認証passwordパスワード認証平文のパスワード認証scram-sha-256パスワード認証scram-sha-256暗号化による認証identIdent認証クライアントのマシン上の「Identification Protocol、RFC1413」サービスに依存

PostgreSQL13之前使用的是md5加密方式,
而PostgreSQL14及以后默认使用scram-sha-256加密方法。

整理

由于是DB,所以连接来源基本上应该是有限的,因此在pg_hba.conf中明确地进行设置是非常重要的。

HBA是什么?
HBA是Host-Based Authentication的缩写。 ↩
bannerAds