基于PostgreSQL pg_hba.conf 配置参数的使用说明

基于PostgreSQL pg_hba.conf 配置参数的使用说明

本文主要介绍了基于PostgreSQL pg_hba.conf的配置参数的使用说明,具有很好的参考价值。希望对大家有帮助。来和边肖一起看看吧。

pg_hba.conf 配置详解

该文件位于初始安装的数据库目录中。

编辑 pg_hba.conf 配置文件

postgres @ clw-db1:/pg data/9.6/POC/data VI pg _ HBA . conf

TYPE 参数设置

类型表示主机类型,值可以是:

如果本地意味着unix域的套接字连接,

如果主机是TCP/IP套接字

如果“主机SSL”是SSL加密的TCP/IP套接字

DATABASE 参数设置

DATABASE表示数据库名称,值可以是:

`全部、`相同用户、`相同角色、`复制、`数据库名称或更多

使用“逗号”作为数据库名称,注意,并非所有名称都与复制匹配。

USER 参数设置

USER是用户名,值可以是:

`所有、`一个用户名、`一组用户名,当有多个用户时,它们可以用`、`逗号分隔,

或者在用户名前缀中```;在用户和数据库字段中,您还可以编写单独的

文件名以` @ 为前缀,并且文件包含数据库名或用户名。

ADDRESS 参数设置

此参数可以是“主机名”或“IP/32 (IPv4)”或“IP/128 (IPv6)”以及主机

名称以“.”开头,samehost或samenet匹配任何Ip地址。

METHOD 参数设置

该值可以是

信任,拒绝, md5 ,密码, scram-sha-256 ,

gss , sspi , ident , peer , pam , ldap , radius 或 cert

请注意,如果使用“密码”,将发送明文密码。

注意

要修改此配置文件中的参数,您必须重新启动postgreSql服务,或者允许其他IP地址访问它。

主机数据库,您必须将postgresql.conf中的参数listen_addresses修改为` *`。

Restart: pg_ctl reload或执行SELECT pg_reload_conf()

配置以下参数

#类型数据库用户地址方法

主机所有所有10.10.56.17/32 md5

pg_hba.conf 99L,4720C

参数说明

host参数指示安装PostgreSQL的主机。

All第一个all表示该主机上的所有数据库实例。

所有的第二都意味着所有的用户。

10.10.56.17/32表示要连接到主机的IP地址,32表示IPV4。

Md5表示身份验证模式。

也就是说,所有IP地址为10.10.56.17的用户都被允许通过MD5密码认证连接到主机上的所有数据库。

也可以指定具体的数据库名称和 用户

#类型数据库用户地址方法

主机测试pgtest 10.10.56.17/32 md5

也就是说,允许地址为10.10.56.17的用户pgtest通过MD5加密的密码连接到主机上的测试数据库。

也可以指定整个网段

#类型数据库用户地址方法

主机测试pgtest 0.0.0.0/0 md5

也就是说,通过用户名pgtest和md5的密码认证,任何iP都可以连接到主机上test的数据库。

不进行密码验证

#类型数据库用户地址方法

主机测试pgtest 0.0.0.0/0信任

具有任意IP地址的用户pgtest可以直接连接并访问该主机的测试数据库,无需密码验证。

补充:postgresql配置文件pg_hba.conf配置、修改postgresql超级用户的密码

Postgresql设置了用户名和密码,却发现不用输入密码或者输错密码也可以登录。于是我上网查了一下,发现是配置文件pg_hba.conf

1.修改pg_hba.conf文件,使得数据库认证方式为加密登录

以下命令可以找到pg_hba.conf的路径

[root @ localhost ~]# find/-name pg _ HBA . conf

输入配置文件。

[root @ localhost ~]# VI/home/postgres/pgsql/data/pg _ HBA . conf

发现配置文件中的内容都被注释掉了,如下:

#本地数据库用户方法[选项]

#主机数据库用户地址方法[选项]

# hostssl数据库用户地址方法[选项]

# hostnossl数据库用户地址方法[选项]

以上相当于postgreql用户可以保密登录,并在末尾添加

主机所有所有0.0.0.0/0 md5

客户端需要提供MD5加密的密码进行身份验证,即需要密码才能登录。

修改pg_hba.conf文件后保存并退出,输入命令使配置生效。

(1)第一种有效的方法

[root @ localhost data]# service PostgreSQL重新加载

执行上述命令后,将出现以下消息:

重新加载PostgreSQL: OK

说明对pg_hba.conf配置文件的修改已经生效。

当客户端连接到数据库时,您需要输入帐户和相应的密码才能登录。pd_Admin连接数据库时,如果选择保存密码,密码会保存在pg_class.conf中,路径为C: users * * appdata roaming PostgreSQL,可以查看。

一般来说,Appdata文件夹是隐藏的,所以需要在电脑设置中显示隐藏的文件。具体方法是百度。

(2)第二种有效的方法

注意:几天后,我打算更改另一台服务器的连接验证方法。我发现上面方法对pg_hba.conf的修改生效时,我报错了。具体错误如下:

[root @ localhost data]# service PostgreSQL重新加载

postgresql:无法识别的服务

在线搜索信息后,尝试以下方法。

切换到postgres用户

[root@localhost ~]# su - postgres

-bash-4.1$ pwd

/var/lib/pgsql

-bash-4.1$ ls

-bash-4.1美元9.5美元

-bash-4.1美元cd *

-bash-4.1$ ls

备份数据pgstartup.log

使用pg_ctl命令对文件生效。

-bash-4.1美元。/pg_ctl重新加载

pg_ctl:未指定数据库目录,环境变量PGDATA未设置

有关更多信息,请尝试“pg_ctl - help”。

如果错误如上所述,您需要在重新加载后添加数据文件夹所在的路径。

-bash-4.1美元。/pg _ CTL reload-D/var/lib/pg SQL/9.5/data

服务器发出信号

出现上面的提示:当服务器发出信号时,配置生效。

2.修改postgresql默认超级用户postgres的密码

首先以postgres用户身份登录postgresql数据库。

[root @ localhost ~]# sudo-u postgres psql

然后用分号“;”修改postgresql的登录密码否则,修改无效,执行命令后,ALTER角色不会出现。

postgres=# alter user postgres with password * * * ;

执行上述命令后,会出现

改变角色

说明修改生效,然后退出postgresql。

postgres=# q

该超级用户postgres的密码已被修改,可以在pgAdmin客户端中验证。

以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。如有错误或不足之处,请不吝赐教。

基于PostgreSQL pg_hba.conf 配置参数的使用说明