用户白名单
配置说明:
为防止帐号泄露,可以配置高权限用户从指定客户端IP登入。数据库安装时,在zhba.conf添加默认记录 host * 127.0.0.1,::1,只允许本地登入。zhba.conf内容为空,表示任意IP可以访问数据库。
zhba.conf文件的格式是一组记录,每行一条。空白行会被忽略,#号开头注释也被忽略,记录不能跨行存在。每条记录声明一种连接类型,一个用户名称,客户端IP地址范围。用户名和客户端IP地址范围用于匹配记录,连接类型用于校验。这个过程从上向下依次处理,如果匹配了一条记录而且认证失败,将不会匹配后面的记录。如果没有匹配到任何记录,那么访问将被拒绝。
当前支持两种类型的连接方式:host和hostssl,其中,
host:支持SSL和非SSL的TCP/IP连接请求。
hostssl:要求必须是SSL加密的TCP/IP连接。使用这个选项,要求数据库启动时候必须开启SSL,如果服务端未开启SSL,配置hostssl的记录会自动转成host记录处理。
认证时系统为每个连接请求顺序检查zhba.conf里面的记录,所以这些记录的顺序是非常关键的。建议靠前的记录配置比较弱的连接方法(host)和比较严格的连接匹配参数,靠后的记录配置比较严格的连接方法(hostssl)和比较弱的链接匹配参数。比如我们一般希望在本地或者信任网络的TCP/IP连接使用host方式连接,而对于远端非信任网络使用更严格的hostssl连接。在这种情况下,类型为host地址为127.0.0.1或者信任网络IP的记录,应该配置在允许更广泛客户端IP地址使用hostssl连接记录的前面。
当数据库主备切换后,需要在主备DN均添加白名单才可以登录。
配置方法:
在zhba.conf文件中添加hba条目,格式为type、user、address。zhba.conf文件的存储路径是$GSDB_DATA/cfg/zhba.conf 。host 是指普通TCP或SSL连接,hostssl是指SSL连接,如果服务端开启ssl,但是客户端没有配置ssl,此时服务端会拒绝连接。
host user 127.0..1,192.168.3.222,20AB::9217:acff:feab:fcd0/64
hostssl user 192.168.2.223数据库实例运行时,通过下面的语句在线加载用户IP白名单,立即生效。
ALTER SYSTEM RELOAD HBA CONFIG;
推荐值:非空
检查方法:
SELECT * FROM DV_HBA;
预期结果:
SQL> SELECT * FROM DV_HBA;
TYPE USER_NAME ADDRESS
---------------------------------------------------------------- ---------------------------------------------------------------- ----------------------------------------------------------------
host USER 127.0..1/32,192.168.3.222/32,20ab::9217:acff:feab:fcd0/64
hostssl USER
192.168.2.223/32,20ab::9217:acff:feab:fcd0/64
2 rows fetched.