unvdb开启peer认证方式

一、概述

peer 认证方法通过从内核获得客户端的操作系统用户名并把它用作被允许的数据库用户名(和可选的用户名映射)来工作。这种方法只在本地连接上支持

二、配置方式

修改数据库配置文件

ud_ident.conf 文件
# MAPNAME       SYSTEM-USERNAME         UD-USERNAME
      ss                aaa            test
      ss                unvdb          unvdb
ud_hba.conf 文件

TYPE       DATABASE      USER        ADDRESS      METHOD
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer map=ss
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     trust
host    replication     all             127.0.0.1/32            trust
host    replication     all             ::1/128                 trust
host    all             all             0.0.0.0/0               md5

重启数据库

systemctl start unvdb

连接数据库

# aaa 操作系统用户,使用 test 数据库用户,免密连入数据库。
[root@udb-49 ~]# su - aaa
[aaa@udb-49 ~]$ ud_sql -U test -d ew -p 5679
ud_sql  (24.2)

Type "help" for help.
ew=> select user;
user
------
test
(1 row)

#如果使用非允许用户连接则会报错
#异常
[root@udb-49 ~]# su  aaa
[aaa@udb-49 ~]$ ud_sql -U unvdb  -p 5679
ud_sql: error: connection to server at "localhost" (::1), port 5679 failed:  FATAL:  database "unvdb" does not exist
[aaa@udb-49 ~]$ exit

#正常
[root@udb-49 ~]# su  unvdb
[unvdb@x98 udb-49]$ ud_sql -U unvdb -p 5679
ud_sql (24.2)
Type "help" for help.

unvdb=#