目录
1. 什么是数据库客户端认证
客户端认证是数据库服务器建立客户端身份的过程,服务器将确定是否允许客户端应用程序(或运行客户端应用程序的用户)与所请求的数据库用户名连接。
2. KingbaseES的客户端认证
客户端认证由配置文件sys_hba.conf所控制,规定允许哪些访问数据库服务器的机器的IP,该配置文件位于数据库数据目录中。
sys_hba.conf文件的常用格式是一组记录,每行一条。空白行将被忽略, #注释字符后面的任何文本也被忽略,记录不能跨行。
每条记录声明一种连接类型、一个客户端IP地址范围(如果和连接类型相关)、一个数据库名、一个用户名、以及对匹配这些参数的连接所使用的的认证方法。
每条记录可以是下面七种格式:
local database user auth-method [auth-options]
host database user ip/masklen auth-method [auth-options]
hostssl database user ip/masklen auth-method [auth-options]
hostnossl database user ip/masklen 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]
- 第一个字段只能是下面的取值
local
这条记录匹配企图使用 Unix 域套接字的连接。如果没有这种类型的记录,就不允许 Unix 域套 接字连接。
host
这条记录匹配企图使用 TCP/IP 建立的连接。host记录匹配SSL和非SSL的连接尝试。
hostssl
这条记录匹配企图使用 TCP/IP 建立的连接,但必须是使用SSL加密的连接。
hostnossl
这条记录的行为与hostssl相反;它只匹配那些在 TCP/IP上不使用SSL的连接企图。
- 第二个字段用于设置一个数据库名称
如果设置为all,表示可以匹配任何数据库;
如果设置为replication,表示允许流复制连接,而不是允许连接到一个名为“replication”的数据库上。
- 第三个字段用于设置一个用户的名称
如果设置为all,表示可以匹配任何用户。
- 地址列表
ip/masklen:IP地址/子网掩码
IP-address IP-mask:IP地址 子网掩码
表示允许哪些IP地址可以访问数据库服务器,如192.168.1.10/32表示只允许192.168.1.10这台主机访问数据库(因为掩码为32,完全匹配这个IP),192.168.1.0/24表示IP地址前缀为192.168.1.X的主机都允许访问数据库服务器。
- 认证方法
auth-method:表示验证方法。
KingbaseES提供多种不同的客户端认证方式。如下表所示:
表1 认证方式
认证方式 | 说明 |
trust | 无条件地允许连接 |
reject | 无条件地拒绝连接 |
scram-sha-256 | 执行SCRAM-SHA-256认证以验证用户的密码 |
md5 | 执行SCRAM-SHA-256或MD5认证以验证用户的密码 |
password | 要求客户端提供一个未加密的口令进行认证。 |
gss | 用 GSSAPI 认证用户。只对TCP/IP连接可用。 |
sspi | 用 SSPI 来认证用户。只在Windows上可用。 |
ident | 允许客户端上的特定操作系统用户连接到数据库。Ident认证只能在TCIP/IP连接上使用。 |
peer | 从操作系统获得客户端的操作系统用户,并且检查它是否匹配被请求的数据库用户名。这只对本地连接可用。 |
ldap | 使用LDAP服务器认证 |
radius | 用RADIUS服务器认证 |
cert | 使用 SSL 客户端证书认证 |
pam | 使用操作系统提供的可插入认证模块服务(PAM)认证 |
bsd | 使用由操作系统提供的 BSD 认证服务进行认证 |
3. 查看当前认证方式
查看当前密码加密方式:
TEST=# show password_encryption;
password_encryption
---------------------
md5
(1 row)
4. 更改认证方式
如需更改配置认证方式为sha-256,直接在kingbase.conf配置文件中修改认证方式为sha-256:
password_encryption = sha-256
修改完成后需重启数据库,数据库客户端认证方式即变更为sha-256。