PostgreSQL数据库远程连接功能的开启(2)
来源:未知 责任编辑:责任编辑 发表时间:2013-11-18 20:57 点击:次
hostnossl database user CIDR-address authentication-method [authentication-option]
host database user IP-address IP-mask authentication-method [authentication-option]
hostssl database user IP-address IP-mask authentication-method [authentication-option]
hostnossl database user IP-address IP-mask authentication-method [authentication-option]
各个字段的含义如下:
local
这条记录匹配通过 Unix 域套接字进行的联接企图。 没有这种类型的记录,就不允许 Unix 域套接字的联接。
host
这条记录匹配通过 TCP/IP 进行的联接尝试。 host 记录匹配 SSL 和非 SSL 的连接请求。
注意: 除非服务器带着合适的 listen_addresses 配置参数值启动,否则将不可能进行远程的 TCP/IP 连接, 因为缺省的行为是只监听本地自环地址 localhost 的连接。
hostssl
这条记录匹配使用 TCP/IP 的 SSL 联接企图。 但必须是使用 SSL 加密的联接。
要使用这个选项,制作服务器的时候必须打开 SSL 支持。而且在服务器启动的时候, 必须SSL选项通过配置选项ssl打开。
hostnossl
这个记录与 hostssl 有着正相反的逻辑: 它只匹配那些在 TCP/IP 上不使用 SSL 的连接请求。
database
声明记录所匹配的数据库。值 all 表明该记录匹配所有数据库, 值 sameuser表示如果被请求的数据库和请求的用户同名,则匹配。 samegroup 表示请求的用户必须是一个与数据库同名的组中的成员。 在其他情况里,这就是一个特定的 PostgreSQL 的名字。 我们可以通过用逗号分隔的方法声明多个数据库。 一个包含数据库名的文件可以通过对该文件前缀 @ 来声明。 www.2cto.com
user
为这条记录声明所匹配的PostgreSQL用户。值 all 表明它匹配于所有用户。 否则,它就是特定 PostgreSQL 用户的名字。多个用户名可以通过用逗号分隔的方法声明。组名字可以通过用 + 做组名字前缀来声明。 一个包含用户名的文件可以通过在文件名前面前缀 @ 来声明。该文件必需和 pg_hba.conf 在同一个目录。
CIDR-address
声明这条记录匹配的客户端机器的 IP 地址范围。它包含一个标准的点分十进制的 IP 地址和一个 CIDR 掩码长度。 (IP 地址只能用数值声明,不能用域或者主机名。) 掩码长度表示客户端 IP 地址必须匹配的高位二进制位数。 在给出的 IP 地址里,这个长度的右边的二进制位必须为零。 在 IP 地址,/,和 CIDR 掩码长度之间不能有空白。
典型的 CIDR 地址是 172.20.143.89/32,这表明一个主机, 或者 172.20.143.0/24 表示一个网络。 要声明单个主机,给 IPv4 地址声明 CIDR 掩码 32,给 IPv6 地址声明 128。
以 IPv4 格式给出的 IP 地址会匹配那些拥有对应地址的 IPv6 连接,比如 127.0.0.1 将匹配 IPv6 地址 ::ffff:127.0.0.1。 一个以 IPv6 格式给出的记录将只匹配 IPv6 连接,即使对应的地址在 IPv4-in-IPv6 范围内。请注意如果系统的 C 库不支持 IPv6 地址,那么 IPv6 的格式将被拒绝。
这个域只适用于 host,hostssl 和 hostnossl 记录。
IP-address
IP-mask
这些方法可以用于作为 CIDR-address 表示法的替补。 它不是声明掩码的长度,而是在另外一个字段里声明实际的掩码。 比如,255.0.0.0 表示 IPv4 CIDR 掩码长度 8,而 255.255.255.255 表示 CIDR 掩码长度 32。 同样的匹配逻辑将用于一个点分的 IP-mask。
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>