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.conf ,并替换 /home/data/pgsql/data 下对应的文件 并根据当前服务器内存大小更改 postgresql.conf 中的 shared_buffered 参数(如果是数据库服务器,建议设置为总内存的...
- 修改`pg_hba.conf`以添加认证规则,允许用户访问数据库(替换`your_username`和`your_network`): ``` host all your_username your_network/32 md5 ``` - 重启PostgreSQL服务以应用更改: ```bash sudo ...
PostgreSQL 数据库 pg_hba.conf 配置文件是 PostgreSQL 数据库的认证配置文件,该文件控制着客户端与数据库服务器的认证过程。在 PostgreSQL 中,pg_hba.conf 文件是一个非常重要的配置文件,它决定了客户端应用与...
sudo cp /usr/local/pgsql/share/postgresql/pg_hba.conf.sample /usr/local/pgsql/data/pg_hba.conf sudo chown -R postgres:postgres /usr/local/pgsql/data sudo systemctl enable postgresql sudo systemctl...
- **配置**:主要涉及`pg_hba.conf`和`postgresql.conf`两个配置文件的修改,设置复制用户,开启wal_log,调整replication参数等。 3. **Ansible部署步骤** - **创建Inventory**:定义主机清单,包括主节点和从...
- 查看 PostgreSQL 的 `postgresql.conf` 文件中的 `ssl` 相关配置项是否已启用。 - 如果服务器端要求 SSL 连接,请确保服务器已正确配置 SSL 证书。 - **Navicat 客户端 SSL 设置**: - 在 Navicat 中连接 ...
使用 Bucardo 搭建 PostgreSQL 数据库双主同步 本文将指导您使用 Bucardo 搭建 PostgreSQL 数据库双主同步,涵盖 Bucardo 的介绍、搭建前准备、安装 Perl 和 PostgreSQL、安装依赖包等方面的知识点。 一、Bucardo ...
4. 配置`pg_hba.conf`和`postgresql.conf`以设置访问权限和性能参数。 5. 初始化数据库集群:`/usr/pgsql-13/bin/initdb -D /var/lib/pgsql/13/data` 6. 修改PostgreSQL服务配置,例如设置开机启动:`systemctl ...
安装PostgreSQL数据库之后,默认是只接受本地访问连接。如果想在其他主机上访问PostgreSQL数据库服务器,...修改pg_hba.conf文件,配置用户的访问权限(#开头的行是注释内容): # TYPE DATABASE USER CIDR-ADDRE
总结,开启 PostgreSQL 的远程访问涉及对 `postgresql.conf` 和 `pg_hba.conf` 的修改,以及随后的服务重启。确保遵循最佳安全实践,限制访问权限,并保持数据库软件的最新状态,以确保数据的安全。希望这个指南对你...
sudo cp /usr/local/pgsql/share/postgresql/pg_hba.conf.sample /etc/postgresql/pg_hba.conf sudo systemctl enable postgresql sudo /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data stop ``` 至此,你...
7. **远程连接**:如果需要远程访问,还需修改`pg_hba.conf`文件,添加允许连接的主机。同时,确保PostgreSQL服务监听所有IP或特定IP。 8. **备份与恢复**:定期备份数据库非常重要。可以使用`pg_dump`和`pg_...
然后,用户需要修改 pg_hba.conf 文件,命令为: vi /var/lib/pgsql/11/data/pg_hba.conf host all all 0.0.0.0/0 md5 7. 重启 PostgreSQL 服务 在配置完成后,需要重启 PostgreSQL 服务。命令为: sudo ...
pg_hba.conf是PostgreSQL的配置文件之一,用于配置用户和IP的访问权限。为了使PostgreSQL能够被远程访问,需要在pg_hba.conf文件中添加相应的配置项。 2.3 修改配置文件postgresql.conf postgresql.conf是...
3. PostgreSQL的配置文件包括pg_hba.conf和postgresql.conf 4. 安装脚本,可以通过此脚本实现一键安装/升级/卸载等一系列操作 安装脚本功能: 1. 一键安装PostgreSQL,并可以指定数据存放目录和CPU资源限制。命令...
需要修改 PostgreSQ 的 pg_hba.conf 文件,添加“host all all 0.0.0.0/0 md5”以允许远程连接。 六、创建地理数据库 在创建地理数据库时,提供了三个选项:Oracle、SQL Server 和 Postgresql。使用 Toolbox 中...