pg_hba.conf 配置

下图是随意截取的一个 pg_hba.conf 的配置文件的配置

  • TYPE 参数设置

TYPE 表示主机类型,值可能为:

若为 `local` 表示是unix-domain的socket连接,

若为 `host` 是TCP/IP socket

若为 `hostssl` 是SSL加密的TCP/IP socket

 

  • DATABASE 参数设置

DATABASE 表示数据库名称,值可能为:

`all` ,`sameuser`,`samerole`,`replication`,`数据库名称` ,或者多个

数据库名称用 `逗号`,注意ALL不匹配 replication

 

  • USER 参数设置

USER 表示用户名称,值可以为:

`all`,`一个用户名`,`一组用户名` ,多个用户时,可以用 `,`逗号隔开,

或者在用户名称前缀 `+` ;在USER和DATABASE字段,也可以写一个单独的

文件名称用 `@` 前缀,该文件包含数据库名称或用户名称

 

  • ADDRESS 参数设置

该参数可以为 `主机名称` 或者`IP/32(IPV4) `或 `IP/128(IPV6)`,主机

名称以 `.`开头,`samehost`或`samenet` 匹配任意Ip地址

 

  • METHOD 参数设置

该值可以为'trust', 'reject', 'md5', 'password', 'scram-sha-256',

'gss', 'sspi', 'ident', 'peer', 'pam', 'ldap', 'radius' or 'cert'

注意 若为`password`则发送的为明文密码

 

pg_hba.conf各类认证方式

我们可以指定当一个连接匹配这条记录时,要使用的认证方式。

1.    trust

无条件地允许连接。这种方法允许任何可以与PostgreSQL数据库服务器连接的用户以他们期望的任意PostgreSQL数据库用户身份登入,而不需要口令或者其他任何认证。

2.    reject

无条件地拒绝连接。这有助于从一个组中'过滤出'特定主机,例如一个reject行可以阻塞一个特定的主机连接,而后面一行允许一个特定网络中的其余主机进行连接。

3.    md5

要求客户端提供一个双重 MD5 加密的口令进行认证。

4.    password

要求客户端提供一个未加密的口令进行认证。因为口令是以明文形式在网络上发送的,所以我们不应该在不可信的网络上使用这种方式。

5.    gss

用 GSSAPI 认证用户。只对TCP/IP 连接可用。

6.    sspi

用 SSPI 来认证用户。只在Windows 上可用。

7.    ident

通过联系客户端的 ident 服务器获取客户端的操作系统名,并且检查它是否匹配被请求的数据库用户名。Ident 认证只能在 TCIP/IP 连接上使用。当为本地连接指定这种认证方式时,将用 peer 认证来替代。

8.    peer

从操作系统获得客户端的操作系统用户,并且检查它是否匹配被请求的数据库用户名。这只对本地连接可用。

9.    ldap

使用LDAP服务器认证。

10. radius

用 RADIUS 服务器认证。

11. cert

使用 SSL 客户端证书认证。

12. pam

使用操作系统提供的可插入认证模块服务(PAM)认证。

13. bsd

使用由操作系统提供的 BSD 认证服务进行认证。

 

注意

· 修改该配置文件中的参数,必须重新加载 `postgreSql`配置文件,若要允许其它IP地址访问该主机数据库,则必须修改 `postgresql.conf` 中的参数 `listen_addresses` 为 `*`

重新加载:pg_ctl reload 或者 执行 SELECT pg_reload_conf()

· 文件中的地址匹配是有顺序的,比如 0.0.0.0/0 如果作为第一个匹配项,则本栏(例如 IPv4 配置栏)其之下的所有配置均可以被忽略,所以配置时要遵循限制越大越靠上,范围越广越向下的原则

 

 

个人原创,转载请标注

发布了4 篇原创文章 · 获赞 0 · 访问量 60
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览