关键字:
安全、用户资源控制、人大金仓、KingbaseES
概述
用户访问限制:在 KingbaseES 中,可以配置用户连接数限制,以及限制账号的使用期限。
用户连接数限制:
在创建用户的时候指定 CONNECTION LIMIT 参数设置用户连接数限制。如果用户有登录权限,此参数可以指定该用户能建立多少并发连接。-1(默认值)表示无限制。注意这个限制仅针对于普通连接,预备事务和后台工作者连接都不受这一限制管辖。
用户使用期限:
在创建用户的时候指定 VALID UNTIL 参数设置用户使用期限,VALID UNTIL 机制设置一个日期和时间,在该时间点之后角色的口令将会失效。默认为不设置,口令将总是有效。
用户 CPU 限制:
限制使用的 CPU 资源,KingbaseES 中通过 kdb_resource_group 插件来实现用户限额功能,通过sys_space_quota 函数实现用户表空间限额。
特性实际操作
用户连接数限制:
用户使用期限:
用户 CPU 限制:
资源组依赖于操作系统的 cgroup 功能,所以必须安装 cgroup 并正确挂载和启动,对应的挂载的子系统目录给予操作用户写入和读取权限。
需要将动态库添加到 kingbase.conf 文件的 shared_preload_libraries 中
在 kingbase.conf 文件中设置参数,开启资源组功能,默认是 off 为关闭状态。
在 kingbase.conf 文件中扩展内的非必选参数,设置 cgroup 的挂载主目录,默认为’/sys/fs/cgroup’, 修改后需要重启数据库生效。
在 kingbase.conf 文件中扩展内的非必选参数,设置 kingbase 可使用操作系统 CPU 的总量,默认为 100,取值范围 1~100,修改后需要删除 cgroup 下的 kingbase 节点,命令如下:cgdelete -r cpu:kingbase。并重启数据库生效。
常用命令
--创建一个资源组
CREATE RESOURCE GROUP group_name WITH (resource_name = value);
--修改一个资源组的限制值
ALTER RESOURCE GROUP group_name SET (resource_name = value);
--删除一个资源组
DROP RESOURCE GROUP group_name;
--查看资源组信息
select * from sys_resgroup;
--查看资源组资源值, 通过系统表 sys_resgroupcapability 来查看资源组关联的相关值限制。系统表sys_resgroupcapability,任何用户都可以查询。
select * from sys_resgroupcapability;
--设置一个资源组的相对CPU使用率
ALTER RESOURCE GROUP group_name SET (cpu_shares = value);
--设置一个资源组的CPU绝对使用率限制
ALTER RESOURCE GROUP group_name SET (CFS_QUOTA_US = value);
--资源组关联用户
ALTER RESOURCE GROUP rgroup2 SET (USER='user1');
select * from sys_resauthid;
cgdelete -r cpu:kingbase
使用经验及注意事项
1.加载参数的时候,注意需要提前安装cgroup并正确挂载和启动,对应的挂载和启动,对应挂载的子系统目录给予用户写入和读取权限。
2.修改参数后记得重启
3.系统表sys_resauthid可以查询数据库用户和资源组的关联。
与竞品差异点
Oracle | Kingbase | |
1 | 采用profile对用户能使用的资源进行限制,创建一个profile后,将其分配给一个用户,即可对其进行限制。 动态使用alter system或初始化参数resource_limit使资源限制生效。 可以从dba_profilts何dba_users表查询profile的信息。 主要是通过修改创建修改并分配profile对用户进行限制。 | 用户连接数限制: 在创建用户的时候指定 CONNECTION LIMIT 参数设置用户连接数限制。 用户使用期限: 在创建用户的时候指定 VALID UNTIL 参数设置用户使用期限,过时间后用户口令将会失效。 用户 CPU 限制: 限制使用的 CPU 资源,KingbaseES 中通过 kdb_resource_group 插件来实现用户限额功能,通过sys_space_quota 函数实现用户表空间限额。 |
价值评价
通过这三种方式进行用户资源控制,用户连接数限制可以避免用户并发数过多导致的资源问题和安全问题。用户使用期限可以增加安全度,防止密码时间过长不做修改被人非法登录的情况。用户CPU的限制可以保证资源的分配,防止其出现资源消耗过大出现的问题。
参考资料
《KingbaseES 安全指南》




