系统管理 维护监控 简单生活
pgsql入门
原文:http://docs.unixmap.net/app/postgresql/auth-pg-hba-conf.html
pg_hba.conf 是基于主机的认证配置文件(host-based authentication)
pg_hba.conf 文件的常用格式:
每行一条记录,空白行和井号 # 开头的注释被忽略。一条记录是由若干用空格和/或制表符分隔的字段组成。如果字段用引号包围,那么它可以包含空白。记录不能跨行存
每条记录可以是下面七种格式之一:
local database user auth-method [auth-option]
host database user CIDR-address auth-method [auth-option]
hostssl database user CIDR-address auth-method [auth-option]
hostnossl database user CIDR-address auth-method [auth-option]
host database user IP-address IP-mask auth-method [auth-option]
hostssl database user IP-address IP-mask auth-method [auth-option]
hostnossl database user IP-address IP-mask auth-method [auth-option]
pg_hba.conf 记录的一些例子
# Allow any user on the local system to connect to any database under # 允许在本机上的任何用户使用 Unix 域套接字(本地连接的缺省)以任何数据库用户身份连接任何数据库 # TYPE DATABASE USER CIDR-ADDRESS METHOD local all all trust # 和上面相同,但是使用的是回环的(loopback)TCP/IP 连接 # TYPE DATABASE USER CIDR-ADDRESS METHOD host all all 127.0.0.1/32 trust # 和上面一行相同,但是用的是独立的掩码字段 # TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD host all all 127.0.0.1 255.255.255.255 trust # 允许 IP 地址为 192.168.93.x 的任何主机与 "postgres" 数据库相连, # 用与他们在自己的主机上相同 ident 的用户名标识他自己(通常是他的 Unix 用户名) # TYPE DATABASE USER CIDR-ADDRESS METHOD host postgres all 192.168.93.0/24 ident sameuser # 允许来自主机 192.168.12.10 的用户提供了正确的口令之后与 "postgres" 数据库连接。 # TYPE DATABASE USER CIDR-ADDRESS METHOD host postgres all 192.168.12.10/32 md5 # 如果前面没有其它 "host" 行,那么下面两行将拒绝所有来自 192.168.54.1 的连接请求(因为前面的记录先匹配)。 # 但是允许来自互联网上其它任何地方的有效的 Kerberos 5 认证的连接。 # 零掩码表示不考虑主机 IP 的任何位。因此它匹配任何主机。 # TYPE DATABASE USER CIDR-ADDRESS METHOD host all all 192.168.54.1/32 reject host all all 0.0.0.0/0 krb5 # 允许来自 192.168.x.x 的任何用户与任意数据库连接,只要他们通过 ident 检查。 # 但如果 ident 说该用户是 "bryanh" 且他要求以 PostgreSQL 用户 "guest1" 连接, # 那么只有在 pg_ident.conf 里有 "omicron" 的映射说 "bryanh" 允许以 "guest1" 进行连接时才真正可以进行连接。 # TYPE DATABASE USER CIDR-ADDRESS METHOD host all all 192.168.0.0/16 ident omicron # 如果下面是用于本地连接的仅有的三行,那么它们将允许本地用户只和同名数据库连接。 # 只有管理员和 "support" 角色里的成员例外,他们可以连接到任何数据库。 # $PGDATA/admins 文件列出了那些允许与所有数据库连接的用户名。 # 在所有情况下都需要口令。 # TYPE DATABASE USER CIDR-ADDRESS METHOD local sameuser all md5 local all @admins md5 local all +support md5 # 上面最后两行可以合起来写成一行 local all @admins,+support md5 # 数据库字段也可以使用列表和文件名: local db1,db2,@demodbs all md5

| 打印文章 | 这篇文章由admin于2009年09月4日 11:20 上午发表在pgsql, 技术实践。你可以订阅RSS 2.0 也可以发表评论或引用到你的网站。 |