客户端认证由配置文件sys_hba.conf所控制,规定允许哪些访问数据库服务器的机器的IP,该配置文件位于数据库数据目录中。
sys_hba.conf文件的格式如下:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all scram-sha-256
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256
host all all 0.0.0.0/0 scram-sha-256
# IPv6 local connections:
host all all ::1/128 scram-sha-256
host all all ::0/0 scram-sha-256
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all trust
host replication all 127.0.0.1/32 scram-sha-256
host replication all ::1/128 scram-sha-256
ADDRESS:指定连接对哪个 ip 或 ip 地址段生效;
主机名称(以.开头)
IP/MASK:如 192.168.1.10/32 表示一个 IP;如 192.168.1.0/24 表示一个网段;
samenet 匹配同网段任意 IP 地址
DATABASE:目标数据库,指定该连接对哪个数据库有效;
all:匹配所有数据库(不匹配 replication)
sameuser:与用户同名的库
replication:允许流复制连接
USER:目标用户,指定该连接对哪个数据库用户有效;
all:表示可以匹配任何用户。
一个用户名
多个用户时,可以用逗号隔开
TYPE:连接方式
local:匹配使用 unix 域套接字连接,如果没有 type 为 local 的条目则不允许通过套接字连接;
host:匹配使用 tcp/ip 建立的连接,同时匹配 ssl 和非 ssl 连接;默认按照只监听本地的环路地址 localhost 的连接,不允许使用 tcp/ip 远程连接,启用远程连接需要修改 kingbase.conf 中的listen_addresses 参数;
hostssl:匹配必须是使用 ssl 的 tcp/ip 连接;配置 hostssl 的 3 个前置条件:a.客户端和服务器端均已安装 openssl;b.编译 kingbase 时指定 configure 参数—with-openssl 打开 ssl 支持;c.在kingbase.conf 中配置 ssl=on;
hostnossl:与 hostssl 相反,只允许使用非 ssl 和 tcp/ip 连接;
METHOD:认证方式
reject:拒绝该 ip 或 ip 地址段的主机访问数据库;
md5:认证方式采用双重 md5 加密;
password:指定明文的密码,不建议;
trust:不经过认证直接访问数据库,不建议;
ident:此时需确认 sys_ident.conf 是否存在;如存在文件及相关配置,则将指定的操作系统用户映射为关联的数据库用户,再进行数据库的连接;
金仓sys_hba.conf
于 2023-09-25 19:25:04 首次发布