PostgreSQL客户端验证

来源:互联网 发布:汪国真经典诗文 淘宝 编辑:程序博客网 时间:2024/04/29 13:29

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

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

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

TYPE      DATABASE USER   ADDRESS    METHOD

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-mask auth-method  [auth-options]

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

hostnossl  database  user  IP-address  IP-mask auth-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.
0 0
原创粉丝点击