本文主要介绍了基于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客户端中验证。
以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。如有错误或不足之处,请不吝赐教。