【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是Host-Based Authentication的缩写。 ↩