OushuDB-客户端认证-配置方法

2023-05-08 11:50:03 浏览数 (1)

这一节,我们来了解一下客户端认证的配置方法和认证方式。 认证是数据库服务器对客户端用户身份鉴别的过程,并且确定客户端以该用户是否可以连接数据库服务 器。OushuDB和PostgreSQL兼容,提供多种不同的客户端认证方式,而pg_hba.conf就是客户端认证的 配置文件,它存放在数据库集群的数据目录里。HBA的意思是”host-based authentication”, 也就是基 于主机的认证。在initdb初始化数据目录的时候, 它会安装一个缺省的pg_hba.conf文件。 一、配置方法 pg_hba.conf文件的常用格式是一组记录,每行一条。空白行将被忽略,#开头的注释也被忽略。一条记 录是由若干用空格和/或制表符分隔的字段组成,记录不能跨行存在。 每条记录可以是下面七种格式之一:

代码语言:javascript复制
   TYPE DATABASE USER ADDRESS METHOD

[auth- options]

代码语言:javascript复制
  local

hostssl host hostnossl database user database user database user database user CIDR-address IP-address IP- mask IP-address IP- mask auth- [auth-options] method auth- [auth-options] method auth- [auth-options] method auth- [auth-options] method host database user CIDR-address auth- [auth-options] method hostnossl database user CIDR-address auth- [auth-options] method hostssl database user IP-address IP- auth- [auth-options] mask method 每条记录声明一种连接类型、一个客户端 IP 地址范围、 一个数据库名、一个用户名字、对匹配这些参 数的连接使用的认证方法。第一条匹配连接类型、 客户端地址、连接请求的数据库名和用户名的记录将 用于执行认证。这个处理过程没有 “跨越”或者”回头”的说法:如果选择了一条记录而且认证失败, 那么 将不再考虑后面的记录。如果没有匹配的记录,那么访问将被拒绝。 1.1 TYPE 表示连接类型,表示允许用哪些方式连接数据库,它允许以下几个值: local:使用本地unix套接字。 host:使用TCP/IP连接(包括SSL和非SSL),结合“IPv4地址”使用IPv4方式,结合“IPv6地址”则使用 IPv6方式。 hostssl:只能使用SSL TCP/IP连接。 hostnossl:不能使用SSL TCP/IP连接。 1.2 DATABASE 声明记录所匹配的数据库名称。值 all表明该记录匹配所有数据库, 值sameuser表示如果被请求的数据 库和请求的用户同名,则匹配。 值samerole表示请求的用户必须是一个与数据库同名的角色中的成员。 在其它情况里,这就是一个特定的 OushuDB数据库的名字。可以通过用逗号分隔的方法声明多个数据 库, 也可以通过前缀@来声明一个包含数据库名的文件。 1.3 USER 指定哪个数据库用户或者角色,多个用户名可以通过用逗号分隔。 1.4 CIDR-ADDRESS 声明这条记录匹配的客户端机器IP地址范围,该地址用标准点分十进制声明并带有CIDR掩码长度,可以 是IPv4地址或IPv6地址,可以定义某台主机或某个网段。 例如,172.20.143.89/32表示一个主机, 172.20.143.0/24表示一个小子网,10.6.0.0/16 表示一个大子 网。 这些字段只适用于host,hostssl,hostnossl记录,local不涉及。 1.5 IP-ADDRESS IP-MASK 与 CIDR-ADDRESS一样,只是写法不同。这种写法不声明掩码的长度, 而是在另外一个字段里声明实际 的掩码。比如,255.0.0.0表示 IPv4 CIDR 掩码长度 8 , 而255.255.255.255表示 CIDR 掩码长度 32 。 这些字段同样只适用于host,hostssl,hostnossl记录,local不涉及。 1.6 METHOD 指定如何处理客户端的认证,也就是认证方式。包括包含选项有: trust、md5、password、krb5、 ident、ldap、pam等,我们将在下一节介绍一下常用的认证方式。

0 人点赞