Peer 认证方法通过从内核获得客户端的操作系统用户名并把它用作被允许的数据库用户名(和可选的用户名映射)来工作。这种方法只在本地连接上支持。
Peer 认证只在提供getpeereid()函数、SO_PEERCRED套接字参数或相似机制的操作系统上可用。这些 OS 当前包括Linux、大部分的BSD包括OS X以及Solaris。
pg_ident.conf 文件
# MAPNAME SYSTEM-USERNAME PG-USERNAME
ss aaa test
ss syd syd
pg_hba.conf 文件
# TYPE DATABASE USER ADDRESS METHOD
local all all peer map=ss
host all all 127.0.0.1/32 md5
host all all 0.0.0.0/0 md5
host all all ::1/128 md5
local replication all md5
host replication all 127.0.0.1/32 md5
host replication all ::1/128 md5
重新加载即可生效
pg_ctl reload
--aaa 操作系统用户,使用 test 数据库用户,免密连入数据库。
[root@dj ~]# su - aaa
[aaa@dj ~]$ psql -U test
psql (12.4)
Type "help" for help.
test=> select user;
user
------
test
(1 row)
--syd 操作系统用户,使用 syd 数据库用户,免密连入数据库
[root@dj ~]# su - syd
[syd@dj ~]$ psql -U syd
psql (12.4)
Type "help" for help.
syd=> select user;
user
------
syd
(1 row)