一种按位存储和计算数据权限的方法及设备技术

技术编号:39827057 阅读:4 留言:0更新日期:2023-12-29 16:02
本申请的目的是提供一种按位存储和计算数据权限的方法及设备,本申请通过确定数据库类型对应的存储位数,根据业务信息确定权限等级;根据所述存储位数及所述权限等级在资源表上动态扩展用户的权限字段;在用户表上增加两个字段,分别用于记录该用户的权限在资源表的扩展列信息以及该扩展列上的位置顺序;基于增加的字段将用户的权限进行按位存储,得到权限存储结构;基于用户对权限的需求计算数据权限,更新所述权限存储结构

【技术实现步骤摘要】
一种按位存储和计算数据权限的方法及设备


[0001]本申请涉及计算机领域,尤其涉及一种按位存储和计算数据权限的方法及设备


技术介绍

[0002]权限本质是用户和资源的关联关系,那么
m
个用户和
n
个资源理论上最多会产生
m*n
个关联关系,如果用传统的关联表去存储两者关联关系,关联关系数据量太大,数据量为资源数量和用户数量的乘积

传统解决方式是将用户和资源进行分组,将权限类似的用户放到同一个角色或用户组中,将相近的资源放到同一个资源分组中,然后记录角色
(
用户组
)
和资源分组之间的关系,如图1所示

该方式基于角色和资源分组的数据模型可以减少关联关系的数据量,但是存在一定的限制:
[0003]1、
必须找到具有共同性质的资源分组和角色,不利于权限精细化管理;
[0004]2、
如果资源分组数量和角色数量仍然很大,那么关联表数据量仍然会很大;
[0005]3、
存储结构变得更加复杂,影响查询效率


技术实现思路

[0006]本申请的一个目的是提供一种按位存储和计算数据权限的方法及设备,解决现有技术中存在大数据量的关联表

无法精确化管理权限

存储结构复杂的问题

[0007]根据本申请的一个方面,提供了一种按位存储和计算数据权限的方法,该方法包括:
>[0008]确定数据库类型对应的存储位数,根据业务信息确定权限等级;
[0009]根据所述存储位数及所述权限等级在资源表上动态扩展用户的权限字段;
[0010]在用户表上增加两个字段,分别用于记录该用户的权限在资源表的扩展列信息以及该扩展列上的位置顺序;
[0011]基于增加的字段将用户的权限进行按位存储,得到权限存储结构;
[0012]基于用户对权限的需求计算数据权限,更新所述权限存储结构

[0013]可选地,根据所述存储位数及所述权限等级在资源表上动态扩展用户的权限字段,包括:
[0014]根据所述存储位数及所述权限等级确定存储用户的权限的数量
n

[0015]在资源表上动态扩展用户的权限字段,其中,每个权限字段存储
m
个用户的权限,其中,所述
m
=存储位数
/n。
[0016]可选地,所述用户对权限的需求包括权限维护和权限应用,所述权限维护包括新增用户和授权操作,所述权限应用包括校验权限和带权限查询

[0017]可选地,当进行新增用户时,基于用户对权限的需求计算数据权限,更新所述权限存储结构,包括:
[0018]判断权限存储结构中用户表是否存在空间存储新增用户的权限,基于判断结果设置用户表中新用户的列和位索引;
[0019]在权限存在结构中的资源表上动态扩展一列;
[0020]插入所述新增用户的权限

[0021]可选地,判断权限存储结构中用户表是否存在空间存储新增用户的权限,包括:
[0022]获取权限存储结构中最新用户对应的列索引
x
,以及位索引
y

[0023]若
y+p≤(
存储位数

p)
,则设置新增用户的列为最大列
x
,设置索引为
y+p
,其中,所述
p
为权限等级;
[0024]若
y+p>(
存储位数

p)
,则设置新增用户的列为最大列
x+1
,设置索引为
0。
[0025]可选地,当进行修改权限时,基于用户对权限的需求计算数据权限,更新所述权限存储结构,包括:
[0026]读取所述权限存储结构中授权用户记录,确定对应的列
x
和对应的列
y

[0027]读取所述权限存储结构中被授权资源记录,确定资源列中
x
列的值
L

[0028]将
L
的第
y

y+(p

1)
位替换为授权信息,将更新后的值写回资源列中的
x
列中,其中,所述
p
为权限等级

[0029]可选地,当进行校验权限时,基于用户对权限的需求计算数据权限,包括:
[0030]读取所述权限存储结构中授权用户记录,确定对应的列
x
和对应的列
y

[0031]读取所述权限存储结构中被授权资源记录,确定资源列中
x
列的值
L

[0032]读取值
L
的第
y

y+(p

1)
位,根据对应位数值判断权限校验是否成功,其中,所述
p
为权限等级

[0033]可选地,当
p
=4时,读取值
L
的第
y

y+(p

1)
位,包括:
[0034]将值
L
进行转换为数组,校验列表权限读取数组的第
y
位,校验读取权限读取数组的第
y+1
位,校验写入权限读取数组的第
y+2
位,校验删除权限读取数组的第
y+3


[0035]可选地,当进行带权限查询数据时,基于用户对权限的需求计算数据权限,更新所述权限存储结构,包括:
[0036]按照原始查询语句的查询条件查询所述权限存储结构中授权用户记录,确定对应的列
x
和对应的列
y

[0037]在所述原始查询语句的查询条件上拼接上权限查询语句;
[0038]执行拼接后的查询语句,返回记录当前对象具备列表权限的资源数据

根据本申请又一个方面,还提供了一种按位存储和计算数据权限的设备,所述设备包括:
[0039]一个或多个处理器;以及
[0040]存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行如前述所述方法的操作

[0041]根据本申请再一个方面,还提供了一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现如前述所述的方法

[0042]与现有技术相比,本申请通过确定数据库类型对应的存储位数,根据业务信息确定权限等级;根据所述存储位数及所述权限等级在资源表上动态扩展用户的权限字本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.
一种按位存储和计算数据权限的方法,其特征在于,所述方法包括:确定数据库类型对应的存储位数,根据业务信息确定权限等级;根据所述存储位数及所述权限等级在资源表上动态扩展用户的权限字段;在用户表上增加两个字段,分别用于记录该用户的权限在资源表的扩展列信息以及该扩展列上的位置顺序;基于增加的字段将用户的权限进行按位存储,得到权限存储结构;基于权限维护需求计算数据权限,更新所述权限存储结构
。2.
根据权利要求1所述的方法,其特征在于,根据所述存储位数及所述权限等级在资源表上动态扩展用户的权限字段,包括:根据所述存储位数及所述权限等级确定存储用户的权限的数量
n
;在资源表上动态扩展用户的权限字段,其中,每个权限字段存储
m
个用户的权限,其中,所述
m
=存储位数
/n。3.
根据权利要求1所述的方法,其特征在于,所述用户对权限的需求包括权限维护和权限应用,所述权限维护包括新增用户和授权操作,所述权限应用包括校验权限和带权限查询
。4.
根据权利要求3所述的方法,其特征在于,当进行新增用户时,基于用户对权限的需求计算数据权限,更新所述权限存储结构,包括:判断权限存储结构中用户表是否存在空间存储新增用户的权限,基于判断结果设置用户表中新用户的列和位索引;在权限存在结构中的资源表上动态扩展一列;插入所述新增用户的权限
。5.
根据权利要求4所述的方法,其特征在于,判断权限存储结构中用户表是否存在空间存储新增用户的权限,包括:获取权限存储结构中最新用户对应的列索引
x
,以及位索引
y
;若
y+p≤(
存储位数

p)
,则设置新增用户的列为最大列
x
,设置索引为
y+p
,其中,所述
p
为权限等级;若
y+p>(
存储位数

p)
,则设置新增用户的列为最大列
x+1
,设置索引为
0。6.
根据权利要求3所述的方法,其特征在于,当进行修改权限时,基于权限维护需求计算数据权限,更新所述权限存储结构,包括:读取所述权限存储结构中授权用户记录,确定对应的列
x
和对应的列
y
;读取所述权限存储结构中被授权资源记录,确定资源列中
x

【专利技术属性】
技术研发人员:吴翔王夷张剑俞楠戚桂洪
申请(专利权)人:上海芯翌智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1