如何设置postgresql访问认证设置Linux认证考试

文章作者 100test 发表时间 2009:10:22 22:00:49
来源 100Test.Com百考试题网


  安装postgresql是一件很简单的事,但是当我第一次安装了postgresql以后,它的安全设置曾经让我困扰过一阵,现在我将以我的经历为线索来讲述如何配置postgresql的访问认证,postgresql的版本是7.3.1,老一点的版本在配置文件上会有稍许不同,请自己注意区别。另外,在阅读中,请注意区分数据库用户和系统用户的区别,以免混淆。

  postgresql的访问认证配置主要涉及到两个主要的配置文件:postgresql.conf和pg_hba.conf。

  postgresql.conf包含了许多的选项,这些选项控制了postgresql.conf的方方面面,中间影响访问认证的选项是:

  unix_socket_group

  设置 Unix 域套接字的组所有人,(套接字的所有权用户总是启动 postmaster 的用户)与 UNIX_SOCKET_PERMISSIONS 选项一起使用可以给这种套接字类型增加额外的访问控制机制,缺省时是一个空字串,也就是使用当前用户的缺省的组, 这个选项只能在服务器启动时设置。

  unix_socket_permissions

  给 Unix 域套接字设置访问权限,Unix 域套接字使用通常的 Unix 文件系统权限集。可选的值可以是一个 chmod 和 umask 系统调用可以接受的数字模式。(要使用客户化的八进制格式,该数字必须以 0 (零)开头)

  缺省权限是 0777,意即任何人都可以联接,合理的选则可能是0770 (只有用户和组, 参阅UNIX_SOCKET_GROUP)和 0700 (只有用户)。(请注意对于 Unix 套接字而言,实际上只有写权限有意义,而且 也没有办法设置或者取消读或执行权限)

  这个选项只能在服务器启动时设置。

  pg_hba.conf是设置访问认证的主要文件,格式为每条记录一行,每行指定一条访问认证。设定一条访问认证包含了7个部分:连接方式(type)、数据库(database)、用户名(user)、ip地址(ip-address)、子网掩码(ip-mask)、认证方法(authentication method)、认证配置(authentication-option),以下是这7个部分的详细说明:

  连接方式(type)

  连接方式共有三种:local、host、hostssl

  local

  这条记录匹配通过 Unix 域套接字进行的联接企图, 没有这种类型的记录,就不允许 Unix 域套接字的联接。

  host

  这条记录匹配通过 TCP/IP 网络进行的联接尝试,请注意,除非服务器是 带着 -i 选项或者打开了 postgresql.conf 里面的 tcpip_socket 配置参数集启动的,否则 TCP/IP 联接是被禁止掉的。

  hostssl

  这条记录匹配通过在 TCP/IP 上进行的 SSL 联接企图, host 记录可以匹配 SSL 和非 SSL 的联接企图, 但 hostssl 记录需要 SSL 联接。

  数据库(database)

  声明记录所匹配的数据库。值 all 表明该记录匹配所有数据库, 值 sameuser表示如果被请求的数据库和请求的用户同名,则匹配。 samegroup 表示请求的用户必须是一个与数据库同名的组中的成员。 在其他情况里,这就是一个特定的 PostgreSQL 的名字。我们可以通过用逗号分隔的方法声明多个数据库。 一个包含数据库名的文件可以 通过对该文件前缀 @ 来声明.该文件必需和 pg_hba.conf 在同一个目录。

  用户名(user)

  为这条记录声明所匹配的 PostgreSQL 用户,值 all 表明它匹配 于所有用户。否则,它就是特定 PostgreSQL 用户的名字,多个用户名可以通过用逗号分隔的方法声明,组名字 可以通过用 做组名字前缀来声明。一个包含用户名的文件可以 通过在文件名前面前缀 @ 来声明,该文件必需和 pg_hba.conf 在同一个目录。

  ip地址(ip-address)

  子网掩码(ip-mask)

  这两个字段包含标准的点分十进制表示的 IP地址/掩码值。 (IP地址只能用数字的方式声明,而不能用域名或者主机名)它们俩放在一起,声明了这条记录匹配的客户机的 IP 地址。 准确的逻辑是:

  (actual-IP-address xor IP-address-field) and IP-mask-field

  对于要匹配的记录必需为零。来源:

  如果连接方式是host或者hostssl的话,这两项必须指定,否则可以不填。


相关文章


虚拟机中Linux不能引导的问题Linux认证考试
打造LINUX桌面下的命令提示符Linux认证考试
Linux系统下NTP服务器简单配置过程Linux认证考试
UbuntuLinux操作系统改进SSHEclipseLinux认证考试
如何设置postgresql访问认证设置Linux认证考试
网络管理:Linux系统网络配置详解Linux认证考试
解析Ftp协议的两种工作模式Linux认证考试
NetworkFileSystem全攻略Linux认证考试
最简便的MySql数据库备份方法Linux认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛