微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PostgreSQL客户端验证

在windows下安装好Postgresql后,当作为服务时,有应用程序或者别的客户端需要访问刚刚安装的postgresql往往都会出现验证不能通过的异常或者错误,这个原因就是Postgresql会对连接上来的客户端的IP进行监听和验证。

在Postgresql中有一个参数listen_addresses,主要监听需要连接的客户端的IP,认为“*”,表示监听所有的IP地址,这个一般不需要去修改,除非有特别的需求。此外,就需要注意“pg_hba.conf”配置文件。此文件存在于安装目录下的data文件夹下。

下面解释下这个文件的常用的配置:

TYPE DATABASE USER ADDRESSMETHOD

local database user auth-method [auth-options]

host database user address auth-method[auth-options]

hostssl database user address auth-method[auth-options]

hostnossl database user address auth-method[auth-options]

host database user IP-address IP-maskauth-method [auth-options]

hostssl database user IP-address IP-maskauth-method [auth-options]

hostnossl database user IP-address IP-maskauth-method [auth-options]

对于每一种TYPE这边不做一一介绍,主要介绍常用的配置TYPE=“host”的配置。

DATABASE指的是需要被访问的数据库名称,如果是特定的数据库名称,那么就是单指这个数据库,比如DATABASE=coms,指的是访问coms数据库时做客户端验证按照这条配置执行,但是除了制定的数据库就不能访问另外的数据库了,一般为了使用方便设置成ALL,表示可以访问所有的数据库;USER表示访问的用户名一般也是ALL,如果指定特定的用户那么意思跟DATABASE也是一样的。

METHOD意味着验证的方法,一般使用MD5,指的是md5加密的password的。

当然验证方法有很多,比如trust其表示无需验证无条件的Connect。

如password其指的是需要不加密的密码,如reject,gss,peer等等,在项目中应该用的比较多的是md5。

ADDRESS的配置至关重要,如127.0.0.1/32。

讨论在IPv4的情况下,

1.10.18.36.13/32 表示子网掩码255.255.255.255,这个配置指的是允许10.18.36.13按照一定的盘配置要求连接操作。

2.10.18.36.0/24 表示子网掩码255.255.255.0,这个配置指的是允许10.18.36.1到10.18.36.255的IP地址按照一定的配置要求连接操作。

3.10.18.0.0/16 表示子网掩码255.255.0.0,这个配置指的是允许10.18.1.1到10.18.255.255的IP地址按照一定的配置要求连接操作

4.10.0.0.0/8 表示子网掩码255.0.0.0,这个配置指的是允许10.1.1.1到10.255.255.255的IP地址按照一定的配置要求连接操作

5.0.0.0.0/0表示所有的IP都可以连接访问。

当本地应用程序的JDBC配置文件配置的是一个具体的IP地址,比如是10.18.36.13,应用程序访问本地的数据,如果在pg_hba.conf只是配置了127.0.0.1/32的话那么照样是访问不了的,解决这种情况有两种方式:

A.在JDBC配置文件中加具体的IP地址修改成localhost或者127.0.0.1;

在pg_hba.conf中添加这个IP的网段或者单个IP的 配置,如10.18.36.13/32.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果是个PostGreSQL的数据,于是装数据库,但这个也不懂呀,而且本系统用的Oracle,于是得解决迁移转换的问题。 总结下来两个思路。1、PostgresToOracle多金的
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么查看PostgreSQL数据库中所有表”文章能帮助大...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正确。  pg_hba.conf文件在Postgre安装文件目录下的data文件夹中。解决方案1、进入到data目录下,找到pg_hba.conf文件
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本地localhost访问正常,在相同网段的远程机器访问报如下错误
wamp 环境 这个提示就是说你的版本低于10了。 先打印php_info(),查看自己的版本(我这边是已经处理后的,之前的忘记截图了)
psycopg2.OperationalError: SSL SYSCALL error: EOF detected 问题提示:exception psycopg2.OperationalError
项目 postgres 连接不上, 所有连接报错 :psql: FATAL: sorry, too many clients already问题原由程序使用连接未及时释放, 连接一直处于 idle 状态处理方式1、 程序里面未释放的连接, 在使用后及时释放
服务器在同一个数据目录上启动了两个PostgreSQL实例(它已经删除postmaster.pid并使用了新的端口号,因此绕过了这种行为的正常保护措施被绕过),导致PostgreSQL的误操作postgresql 报错 FATAL: the database system is
问题原因:数据库崩溃,内存不足造成 或者 数据已损坏,磁盘故障造成首先介绍一下背景,在测试Deepgreen(Greenplum升级版)数据库时,pgbench并发数设置过多,导致数据库卡死了,在进行连接、重启、关闭时,都报同样
第 11 届 PostgreSQL 中国技术大会于 2022 年 1 月 7 日至 9 日在武汉光谷会展酒店成功举办。作为 PostgreSQL 技术领域的年度盛事,postgreSQL 中文社区旨在搭建开放、合作共享的平台,基于开源,创新驱动,共同探讨数据库行业数字化发展方向和未来新机遇。