1.客户端认证配置配置文件pg_hba.conf作用
哪些主机可以连接数据库实例
哪个数据库用户可以使用它
允许这个用户使用哪些数据库
客户端使用什么连接方式和认证方式
2.配置文件说明
该配置文件有5个参数,分别为:
TYPE(主机类型)、DATABASE(数据库名)、USER(用户名)、ADDRESS(IP地址和掩码)、METHOD(加密方法)
# 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]
3.主机类型
pg_hba.conf-主机类型TYPE
local匹配使用Unix域套接字的连接
如果没有TYPE为local的条目则不允许通过Unix域套接字连接
host匹配使用 TCP/IP建立的连接,同时匹配SSL和非SSL连接
缺省安装只监听本地环回地址localhost的连接,不允许使用TCP/IP远程连接
启用远程连接需要修改postgresql.conf中的listen_addresses参数
SSL(Secure Sockets Layer 安全套接字协议),
hostssl 匹配必须是使用SSL的TCP/IP连接
客户端和服务器端都安装OpenSSL
编译PostgreSQL的时候指定configure参数--with-openssl打开SSL支持
在postgresql.conf中配置ssl = on
hostnossl只匹配使用非SSL的TCP/IP连接
4.认证方式
pg_hba.conf-认证方式
trust
无条件地允许连接。
允许任何可以与PostgreSQL数据库服务器连接的用户身份登入
不需要口令或者其他任何认证。
reject
无条件拒绝连接。常用于从一个组中“过滤出”特定主机
例如一个reject行可以阻塞特定的主机连接,而后面一行允许特定网络中的其余主机进行连接
md5和password口令认证
md5认证方式为双重md5加密,password指明文密码
不能在非信任网络使用password方式。
peer
从操作系统获得客户端的操作系统用户,并且检查它是否匹配被请求的数据库用户名
只对本地连接可用
5.pg_hba.conf-配置示例
# TYPE DATABASE USER ADDRESS METHOD
local all all trust # 服务端本地用户可信登录
host replication replica 192.168.1.0/0 md5 # 流复制用户密码验证登录
host all postgres 192.168.1.0/0 reject # 拒绝超级用户从网络登录
host all all 192.168.1.0/0 md5 # 其它用户密码验证登陆(不太安全)
6.总结
local 备注:
Linux下进程通讯方式有很多,比较典型的有套接字,平时比较常用的套接字是基于TCP/IP协议的,
适用于两台不同主机上两个进程间通信, 通信之前需要指定IP地址.
同一台主机上两个进程间通信用套接字,还需要指定ip地址,有点过于繁琐.
这个时候就需要用到UNIX Domain Socket, 简称UDS。