`
swingfly
  • 浏览: 52810 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

postgresql的pg_hba.conf文件

    博客分类:
  • SQL
阅读更多

 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的话,这两项必须指定,否则可以不填。 

认证方法(authentication method) 

trust 

无条件地允许联接,这个方法允许任何可以与PostgreSQL 数据库联接的用户以他们期望的任意 PostgreSQL 数据库用户身份进行联接,而不需要口令。 

reject 

联接无条件拒绝,常用于从一个组中"过滤"某些主机。 

md5 

要求客户端提供一个 MD5 加密的口令进行认证,这个方法是允许加密口令存储在pg_shadow里的唯一的一个方法。 

crypt 

类似 md5 方法,只是用的是老式的 crypt 加密认证, 用于 7.2 以前的客户端,对于 7.2 以及以后的客户端,我们建议使用 md5。 

password 

和"md5"一样,但是口令是以明文形式在网络上传递的,我们不应该在不安全的网络上使用这个方式。 

krb4 

用 Kerberos V4 认证用户,只有在进行 TCP/IP 联接的时候才能用。(译注:Kerberos,"克尔波洛斯",故希腊神话冥王哈得斯的多头看门狗。Kerberos 是 MIT 开发出来的基与对称加密算法的认证协议和/或密钥 交换方法,其特点是需要两个不同用途的服务器,一个用于认证身份, 一个用于通道两端用户的密钥交换。同时 Kerberos 对网络时间同步 要求比较高,以防止回放攻击,因此通常伴随 NTP 服务。) 

krb5 

用 Kerberos V5 认证用户.只有在进行 TCP/IP 联接的时候才能用。(译注:Kerberos V5 是上面 V4 的改良,主要是不再依赖 DES 算法, 同时增加了一些新特性。) 

ident 

获取客户的操作系统名(对于 TCP/IP 联接,用户的身份是通过与运行在客户端上的 ident 服务器联接进行判断的,对于本地联接,它是从操作系统获取的。) 然后检查一下,看看用户是否允许以要求的数据库用户进行联接, 方法是参照在 ident 关键字后面声明的映射。 

如果你使用了 sameuser 映射,那么假设用户名 是相等的。如果没有声明这个关键字,则在 $PGDATA/pg_ident.conf 文件中找出映射名。如果这个文件里包含一条记录标识着ident提供的用户名 和请求的 PostgreSQL 用户名的映射, 那么联接被接受。 

对于本地联接,只有在系统支持Unix域套接字信任证的情况下 才能使用(目前是 Linux, FreeBSD, NetBSD, 和 BSD/OS)。 

pam 

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

认证配置(authentication-option) 

这个可选的字段的含义取决与选择的认证方法。 

分享到:
评论

相关推荐

    pg_hba.conf

    可以直接粘贴,让服务器的数据库直接访问。

    应用层PostgreSQL数据库安装步骤.zip

    复制以上文件 pg_hba.conf 和 postgresql.conf ,并替换 /home/data/pgsql/data 下对应的文件 并根据当前服务器内存大小更改 postgresql.conf 中的 shared_buffered 参数(如果是数据库服务器,建议设置为总内存的...

    Linux怎么设置PostgreSQL远程访问

    安装PostgreSQL数据库之后,默认是只接受本地访问连接。如果想在其他主机上访问PostgreSQL数据库服务器,...修改pg_hba.conf文件,配置用户的访问权限(#开头的行是注释内容):  # TYPE DATABASE USER CIDR-ADDRE

    Linux使用脚本一键安装PostgreSQL

    3. PostgreSQL的配置文件包括pg_hba.conf和postgresql.conf 4. 安装脚本,可以通过此脚本实现一键安装/升级/卸载等一系列操作 安装脚本功能: 1. 一键安装PostgreSQL,并可以指定数据存放目录和CPU资源限制。命令...

    PostgreSQL:PostgreSQL

    # find / -name "postgresql.conf" ## /var/lib/pgsql/12/data/postgresql.conf ## [root@node01 postgresql]# find / -name "pg_hba.conf" ## /var/lib/pgsql/12/data/pg_hba.conf在postgresql.conf中编辑ip侦听...

    GP日常维护手册-常用命令.doc

    GP日常维护手册-常用命令 Greenplum 日常维护手册 1.数据库启动:gpstart ...-u:不停止数据库,只加载pg_hba.conf 和postgresql.conf中运行时参数,当改动参数配置时候使用。 -f:强制停止数据库 -r: 重启数据库

    postgresql-9.0.4-1 32位Windows安装程序

    postgresql-9.0.4-1 32位Windows安装程序 <注意> 1) 如果要通过远程桌面安装必须用 ... pg_hba.conf 文件 # IPv4 local connections: host all all 127.0.0.1/32 md5 host all all 172.23.1.0/24 trust

    docker-postgresql:Docker postgresql 容器

    首先你的配置文件ph_hba.conf和postgresql.conf对PostgreSQL 默认更改为: 在postresql.conf : data_directory = '/data' listen_addresses = '*' 在pg_hba.conf : host all all 0.0.0.0/0 md5 然后在...

    naruto-unison:火影忍者齐奏

    火影忍者齐奏下一代火影忍者竞技场,完全是在Haskell和Elm建造的。 《火影忍者》由岸本正史创作,Pierrot Co. 出版,Viz Media 授权。... 创建一个新数据库并将其添加到 PostgreSQL pg_hba.conf文件中。 在config/

    pg-multi:Postgresql MasterSlave Chef 包装食谱

    pg_master.rb :设置一个主 Postgresql 服务器并创建一个复制用户,并在 pg_hba.conf 文件中设置授权。 pg_slave.rb : 设置一个从 Postgresql 流从复制服务器,指向在属性中定义的主节点。 从服务器默认配置为只读...

    postgresql-perf-tools:PostgreSQL 性能监控工具

    注意:您可能需要修改 pg_hba.conf 文件以允许脚本连接到服务器。 请参考官方文档: : 有关命令行选项的详细列表,请使用 --help / -h 选项。 顶 pg-top.py使用 pg_stat_user_tables 系统表来获取服务器活动的...

    PHP连接及操作PostgreSQL数据库的方法详解

    本文实例讲述了PHP连接及操作PostgreSQL数据库的方法...在开始使用PHP连接PostgreSQL接口之前,请先在PostgreSQL安装目录中找到pg_hba.conf文件,并添加以下行: # IPv4 local connections: host all all 127.0.0.1/32

    zabbix4.4.3使用postgresql数据库

    一、安装postgresql数据库 win64安装postgresql10 下载 下载地址...配置pg_hba.conf文件,文件路径:~/postgre/10/data/ 找到#“ IPv4 local connections:”在下面新加一行 host all

    Posgresql主从流复制相关配置

    Postgresql9.6基于主从流复制的配置,包含主节点: postgresql.conf, pg_hba.conf,从节点: postgresql.conf,pg_hba.conf,recovery.conf

    ansible-postgresql:部署PostgreSQL软件的角色

    enix.postgresql 使用在UNIX主机上部署和配置上游发行版的。... postgresql__global_config_options设置到postgresql.conf中的全局配置选项。 常见的选择是: postgresql__global_config_options: -

    ssmu-powerlifting-play:[未维护] ssmu 举重俱乐部网站

    SSMU 力量举网站 ssmu 举重俱乐部网站,...编辑 pg_hba.conf 文件 find / -name "pg_hba.conf" 将点更改为 md5 创建数据库 CREATE DATABASE ssmu-powerlifting 创建表 psql -U postgres -d ssmupowerlifting -a

    docker-powa:PostgreSQL 工作负载分析器的 Docker 镜像

    pg_hba.conf 将以下行添加到 pg_hba.conf 以从任何地方为任何用户启用密码登录: host all all 0.0.0.0/0 md5 运行图像时,不要忘记为您的超级用户(您将用来访问 GUI 的用户)提供密码! 图形用户界面 powa-web ...

    lazona_connector

    要启用该功能,请在pg_hba.conf的底部添加一个新条目,您可以在/etc/postgresql/<postgresql>/main/pg_hba.conf找到该条目,如下所示。 # TYPE DATABASE USER ADDRESS METHODlocal lazona_connector <your>

    Postgresql开启远程访问的步骤全纪录

    pg_hba.conf 然而由于系统安装的是Centos 7,而默认的Postgresql版本为9.2,于是安装了个9.6的版本,却发现在配置好远程无法访问。而默认的路径是找不到上述2个文件的,此时可以通过如下的方式查看其对应的文件的路径: ...

    sar2pg:使用Grafana仪表板将Linux每日SAR输出摄取到PostgreSQL中

    数据库用户修改pg_hba.conf以允许访问Grafana 以升序将sql / alter-XXXX.sql文件加载到新数据库中在Grafana中为PostgreSQL数据库创建数据源用法加载数据中执行sar_parse.sh以加载每个sar文件的数据。 ./sar_parse.sh...

Global site tag (gtag.js) - Google Analytics