暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

人大金仓数据库KingbaseES 控制用户连接时间

原创 数据猿 2023-12-19
636


关键字:

控制用户连接时间,安全、人大金仓、KingbaseES

概述

创建用户时可以设置用户的连接时间,若不进行设置则会默认设置为0,即不进行连接时间的限制。创建完用户后,可以使用alter对指定用户的连接时间进行修改。

系统表sys_authid新增一列bigint类型的数据,用于记录用户的连接时间单位为秒,当时间为0时,表示不对该用户的连接时间做限制。不支持将用户连接时间设置为负数。

设置指定用户连接时间后,该用户只要一连接上数据库,系统就会获取表sys_authid中记录的对应用户的连接时间并开始计时,计时到指定时间就会断开用户的连接,释放用户占有的资源。

主要功能如下:

  1. 创建用户并设置连接时间

拥有create role权限的用户在创建新用户时可以通过with选项中的connection time来实现设置新用户的连接时间。若在创建新用户时不指定连接时间限制,系统会将时间默认设置为0,表示不对新用户的连接时间进行限制。不支持将连接时间设置为负数。

例如:create user username with connection time xxx;、

  1. 修改用户的连接时间

拥有create role权限的用户在使用alter语句修改用户时,可以通过with选项中的connection time来实现修改指定用户的连接时间。修改时用户需要对被修改用户拥有修改权限,例如普通用户无法修改超级用户的连接时间。将时间修改为0表示不对用户进行连接时间的限制,不支持将连接时间设置为负数。

例如:alter user username with connection time xxx;

控制用户连接时间特性实际操作

--1、创建用户--正向--使用正确语法创建用户同时设置用户连接时间5s,登出后,使用创建的用户连接数据库--预期到30s后,自动断开,查系统视图sys_authid中预期可查到该用户的连接时间

./ksql test -U system -W -p22221

drop user u1;

create user u1 password '12345678ab' connection time 5;

select rolname,rolconntime from sys_authid where rolname = 'u1';

-- rolname | rolconntime

---------+-------------

-- u1 | 5

--(1 row)

\c "dbname=test user=u1 password=12345678ab port=":PORT

\! date

--2023年 09月 21日 星期四 18:47:19 CST

\! date

--2023年 09月 21日 星期四 18:47:26 CST

\d

--没有到服务器的联接

--2、修改用户属性时--正向--使用正确语法创建用户同时设置用户连接时间5s,登出后,使用创建的用户连接数据库--预期到设置时间,自动断开,查系统视图sys_authid中预期可查到该用户的连接时间

./ksql test -U system -W -p22221

select rolname,rolconntime from sys_authid where rolname = 'u1';--预期5s

alter user u1 connection time 10;

select rolname,rolconntime from sys_authid where rolname = 'u1';--预期10s

\c "dbname=test user=u1 password=12345678ab port=":PORT

\! date

--2023年 09月 21日 星期四 18:57:25 CST

\! date

--2023年 09月 21日 星期四 18:57:30 CST

\d

-- 关联列表

-- 架构模式 | 名称 | 类型 | 拥有者

------------+-------------------------+------+--------

-- public | sys_stat_statements | 视图 | system

-- public | sys_stat_statements_all | 视图 | system

--(2 行记录)

\! date

--2023年 09月 21日 星期四 18:57:36 CST

\d

--没有到服务器的联接

使用经验及注意事项

到达用户的连接时间后,需要进行操作才有,退出数据库,原理为到达连接时间后,服务端已知断开,但客户端未知晓,需要发送请求到服务端。

设置用户的连接时间后,需要使用该用户再次连接数据库时才生效,本次不生效。

到达用户的连接时间后退出,该行为即使开启服务器级的审计,也不会被审计到。

价值评价

首先,可以控制单个用户的连接时间。

其次,用户连接数据库到指定时间后断开连接,可以及时释放数据库资源,避免单个用户占用数据库资源的时间过长。


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论