赵小黑 发表于 2016-11-22 05:54:22

Postgres远程访问配置

  在服务器上安装了Postgres数据库,然后通过客户端工具pgAdminIII来远程访问的过程中发现提醒服务器没有启动监听的错误。解决方法如下:
  编辑Postgres安装路径下的/data/pg_hba.conf 文件:
  e.g:
  # TYPEDATABASE    USER      CIDR-ADDRESS          METHOD
  # IPv4 local connections:
host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
#host    all         all         ::1/128               md5
  说明:
  # TYPE DATABASE USER CIDR-ADDRESS METHOD
  说明每一行有五个字段,
  分别是:连接类型、可使用的数据库名、使用者、DIDR地址、和验证方法等五项。
  下面,我只介绍一些针对每个字段常用的选项。
  字段一:TYPE。
  可以选择:local或host。
  前者只能允许本地的用户登陆Postgres数据库;后者可以接受远程客户登陆。所以,
  我们应该使用“host”。
  字段二:DATWABSE。
  连接用户可以使用的数据库名字。可以使Postgres的一个具体的
  数据库名,也可以使用“all”来允许用户访问所有数据库。
  字段三:USER。可以指定某个具体的用户来连接Postgres数据库(还要结合后面的地址字段),
  也可以使用“all”来允许所有用户连接数据库。
  字段四:DIDR-ADDRESS。
  这可能会让您不知所措,不知道它为何物。
  其实,它就是IP地址与掩码的另一种表示方法而已。
  Postgres是通过这个字段来了解,允许那些IP或IP网段连接此服务器。
  它的格式是: IP地址/掩码。
  这个掩码和子网掩码是一个道理,只不过是用一个小于等于32的正数来表示,
  表示的正是子网掩码中高几位为1,
  比如,255.255.255.0 就是“24”,说明高24位是1。
  192.168.0.1/32 相当于 IP为192.168.0.1,子网掩码为255.255.255.255的网段,
  很显然,这只表明192.168.0.1IP自己。
  如果您对IP地址与子网掩码不太了解,请查看相关资料。
  字段五:METHOD。
  这是验证方法。可选的有:
  reject:拒绝这个IP的用户访问;
  md5:密码以md5作为hash编码;
  password:密码作为明文传输(好恐怖!);
  krb5:密码以krb5作为hash编码。
  下面举一个例子,来说明如何进行设置:
  # TYPE DATABASE USER CIDR-ADDRESS METHOD
  #允许IP为192.168.0.1的所有用户登陆到Postgres服务器的所有数据库,采用md5验证。
  host all all 192.168.0.1/32 md5
  #允许用户testuser在192.168.0.XX的网段任意机器登陆Postgres服务器,
  #只能使用数据库testdb,采用md5验证。
  host testdb testuser 192.168.0.1/24 md5
  2. 改监听地址
  默认下,POSTGRESQL只接受本地服务,要接受远程服务,需改postgresql.conf 文件listen_address = *
  3. 如果是在Linux上的PostgreSQL
  要打开 “unix的tcpip套接子”。
  编辑 $POSTGRES/data/postgresql.conf 文件,
  将tcpip_socket=off改成tcpip_socket=on即可。
页: [1]
查看完整版本: Postgres远程访问配置