1.本申请涉及数据安全技术领域,特别是涉及一种数据操作请求处理方法、装置、计算机设备和存储介质。
背景技术:2.随着数据库技术的发展,出现了数据库权限控制技术,即在持久层中添加数据的查询、修改以及删除的权限,但是直接在持久层中添加数据的查询、修改以及删除的权限,存在一定的遗漏点,并且一旦采用规律型唯一id(比如自增主键),遗漏的持久层连接点则存在数据泄露或非法操作的可能性。
3.传统技术中,为了避免上述数据泄露或非法操作,在数据持久层通过sql条件硬编码完成业务数据隔离的需求。
4.然而,sql条件硬编码的方式进行数据权限的隔离可配置化几乎为零,代码耦合度高,而且必须根据每一条sql进行控制,一但需求变更,所有的脚本需要更改,导致开发量大。
技术实现要素:5.基于此,有必要针对上述技术问题,提供一种能够减少开发量的数据操作请求处理方法、装置、计算机设备和存储介质。
6.一种数据操作请求处理方法,所述方法包括:拦截数据操作请求;对所拦截的数据操作请求进行解析得到所述数据操作请求的操作类型、所涉及的目标实体以及当前登录用户信息;获取预先配置的数据权限配置表;根据所述目标实体,从所述数据权限配置表中获取到对应配置权限值;根据所述操作类型、所述配置权限值以及当前登录用户信息生成权限隔离条件,包括:按照预设的匹配顺序,读取配置权限值;将所读取的配置权限值与范围隔离系数进行计算,并将得到的计算结果与操作类型对应的位运算字符进行位运算,得到可操作的数据归属维度;根据所述当前登录用户信息和可操作的数据归属维度得到权限隔离条件;根据所述权限隔离条件对所述数据操作请求进行更新,并基于更新后的数据操作请求进行数据操作处理。
7.在其中一个实施例中,所述获取预先配置的数据权限配置表之后,还包括:判断所述数据权限配置表中是否存在与所述目标实体对应的所述初始实体;当存在与所述目标实体对应的所述初始实体,则继续根据所述目标实体,从所述数据权限配置表中获取到对应配置权限值。
8.在其中一个实施例中,所述判断所述数据权限配置表中是否存在与所述目标实体对应的所述初始实体之后,还包括:
当不存在与所述目标实体对应的所述初始实体,则直接执行所述数据操作请求以进行数据操作处理。
9.在其中一个实施例中,所述数据权限配置表的生成方式包括:获取预设字段匹配规则;根据所述预设字段匹配规则,建立数据表中对应字段的数据归属维度的字段。
10.在其中一个实施例中,所述根据所述预设字段匹配规则,建立数据表中对应字段的数据归属维度的字段,包括:当对未落地的数据表进行配置时,则根据所述预设字段匹配规则,建立数据表中对应字段的数据归属维度的字段;当对已落地的数据表进行配置时,根据所述预设字段匹配规则,查询已落地的数据表中对应的待处理字段;通过建立视图的方式建立所述待处理字段对应的数据归属维度的字段。
11.一种数据操作请求处理装置,所述装置包括:拦截模块,用于拦截数据操作请求;解析模块,用于对所拦截的数据操作请求进行解析得到所述数据操作请求的操作类型、所涉及的目标实体以及当前登录用户信息;配置权限值获取模块,用于获取预先配置的数据权限配置表,根据所述目标实体,从所述数据权限配置表中获取到对应配置权限值;权限隔离条件生成模块,用于根据所述操作类型、所述配置权限值以及当前登录用户信息生成权限隔离条件;更新模块,用于根据所述权限隔离条件对所述数据操作请求进行更新,并基于更新后的数据操作请求进行数据操作处理;所述权限隔离条件生成模块包括:读取单元,用于按照预设的匹配顺序,读取配置权限值;位运算单元,用于将所读取的配置权限值与范围隔离系数进行计算,并将得到的计算结果与操作类型对应的位运算字符进行位运算,得到可操作的数据归属维度;生成单元,用于根据所述用户信息和可操作的数据归属维度得到权限隔离条件。
12.在其中一个实施例中,所述装置还包括:判断模块,用于判断所述数据权限配置表中是否存在与所述目标实体对应的所述初始实体;第一处理模块,用于当存在与所述目标实体对应的所述初始实体,则继续根据所述目标实体,从所述数据权限配置表中获取到对应配置权限值。
13.在其中一个实施例中,所述装置还包括:第二处理模块,用于当不存在与所述目标实体对应的所述初始实体,则直接执行所述数据操作请求以进行数据操作处理。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的方法的步骤。
15.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
16.上述数据操作请求处理方法、装置、计算机设备和存储介质,在拦截到数据操作请求后,则首先进行解析得到操作类型、所涉及的目标实体以及当前登录用户信息,并根据预先配置的数据权限配置表查询得到目标实体对应的配置权限值,以判断是否可以进行对应的操作,并根据操作类型、配置权限值以及当前登录用户信息生成权限隔离条件,从而使得用户仅能处理对应当前登录用户信息的数据,不需要研发用户关注数据权限,仅需要重点关注业务即可,可以减少原有的开发工作量。且由于都是根据预先配置数据权限配置表进行操作的,因此若是需求变更则仅需要修改数据权限配置表即可,不需要修改代码等,大大节省了开发量和后期的运营维护成本,也就是说支持灵活配置,随时适应可变的业务数据隔离要求。
附图说明
17.图1为一个实施例中数据操作请求处理方法的应用环境图;图2为一个实施例中数据操作请求处理方法的流程示意图;图3为一个实施例中数据权限配置表的示意图;图4为一个实施例中数据权限配置表的预处理流程的流程图;图5为一个实施例中的配置权限值说明表的示意图;图6为图2所示实施例中的步骤s210的流程图;图7为另一个实施例中数据操作请求处理方法的流程示意图;图8为一个实施例中数据操作请求处理装置的结构框图;图9为一个实施例中计算机设备的内部结构图。
具体实施方式
18.为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
19.本申请提供的数据操作请求处理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与数据库104进行通信。其中,终端102向数据库104发送数据操作请求,安装在数据库中的数据操作请求解析插件106则拦截终端102发送的数据操作请求,并对所拦截的数据操作请求进行解析得到数据操作请求的操作类型、所涉及的目标实体以及当前登录用户信息,进而数据操作请求解析插件106获取到预先配置的数据权限配置表,这样根据目标实体,从数据权限配置表中获取到对应配置权限值,并根据操作类型、配置权限值以及当前登录用户信息生成权限隔离条件,从而数据操作请求解析插件106可以根据权限隔离条件对数据操作请求进行更新,并基于更新后的数据操作请求对数据库104进行数据操作处理。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,数据库104可以用独立的数据库或者是多个数据库组成的数据库集群来实现。
20.在一个实施例中,如图2所示,提供了一种数据操作请求处理方法,以该方法应用于图1中的数据操作请求解析插件为例进行说明,包括以下步骤:s202:拦截数据操作请求。
21.具体地,数据操作请求是终端发送至数据库中,用于对数据库中存储的数据进行查询、修改或者是删除操作的。本实施例中通过在数据库中添加数据操作请求解析插件,如sql解析插件来对数据操作请求进行拦截。该sql解析插件可以是数据库持久层框架mybatis,通过继承mybatis提供的interface接口创建自定义拦截器。该拦截器主要是用于首先拦截终端发送至数据库中sql操作请求,也就是说若非sql操作请求,则该拦截器不会进行拦截,并基于预先定义的解析协议对所拦截的sql操作请求进行解析处理得到对应的解析数据,最后根据解析数据以及预先配置的数据权限配置表生成权限隔离条件,并根据权限隔离条件生成新的sql,以替换原始sql,从而根据新的sql对数据库进行操作。
22.s204:对所拦截的数据操作请求进行解析得到数据操作请求的操作类型、所涉及的目标实体以及当前登录用户信息。
23.具体地,数据操作请求的操作类型包括查询、修改和删除,也就是对应于对数据库中的数据的读、写和删操作。目标实体是指数据库中的数据表或视图,该目标实体中一定包含指定字段名或别名字段,也就是对应于数据归属维度的各个字段名或别名字段,因此对于已落地的数据表,则通过视图的方式建立数据表的别名字段,而对于新建的实体,则可以直接配置数据表的别名字段。当实体中存在数据归属维度对应的各个字段名或别名字段时,则可以进行权限隔离条件的生成。当前登录用户信息则是数据操作请求中的会话信息,该会话信息中包含的登录信息则分别对应于数据归属维度中各个维度,例如当前登录用户信息包括登录会话的用户id、登录会话的部门代码以及登录会话的机构代码,则分别对应于数据归属维度的用户、部门和机构维度。
24.数据操作请求解析插件在拦截得到数据操作请求后,则按照拦截器自定义的解析协议对数据操作请求进行解析,例如读取数据操作请求中特定位置的值,并按照预先设置的位置与解析字段的映射关系得到各个解析字段的值,例如读取操作类型对应的位置处的值,并存储至操作类型解析字段,这样完成对操作类型的解析,同样地,对于目标实体以及当前登录用户信息也同样地进行解析。
25.数据操作请求解析插件在拦截得到数据操作请求后,可以将所拦截得到的数据操作请求按照时间顺序进行缓存,并从缓存队列中按照时间顺序依次读取到对应的数据操作请求,并进行解析,这样预先进行缓存,避免了高并发时数据处理混乱的情况。
26.s206:获取预先配置的数据权限配置表。
27.具体地,数据权限配置表是用户预先配置的,用户在进行开发时,并不需要对数据权限进行代码等的复杂开发,而仅需要对数据权限配置表进行配置,通过统一配置处理提升开发质量、效率与代码安全性,并减少开发关注点以及后续权限变更时的维护成本。
28.其中,参见图3所示,图3为一个实施例中数据权限配置表的示意图,其中数据权限配置表中可以包括多个实体,每个实体中需要包括指定字段名或别名,也就是对应数据归属维度的各个字段。
29.其中数据权限配置表可以是在数据操作请求解析插件启动时预先进行缓存的,这样获取数据权限配置表则仅需要读取缓存即可,提高运算效率。具体可以参见图4,图4为一个实施例中数据权限配置表的预处理流程的流程图,在应用程序启动时,则直接读取最新的数据权限配置表,并进行缓存。
30.s208:根据目标实体,从数据权限配置表中获取到对应配置权限值。
31.具体地,结合图3,其中数据权限配置表中包括多个目标实体,且每个实体中均包括数据归属维度对应的各个字段,且对于每个数据归属维度对应的字段均设置对应的权限,包括读写删权限。例如当数据归属维度包括用户、部门和机构时,其中一个目标实体的配置权限可以包括用户具有读写删权限,部门具有读写权限,机构仅具有读权限。
32.在实际应用中数据可用权限系数可以配置为:读【r=1】、写【w=2】、删除【d=4】。数据归属维度权限系数可以是数位来进行确定,例如假设数据归属维度包括用户、部门和机构时,则用户维度【x1=1】,部门维度【x2=10】,机构维度【x3=100】,需要说明的是数据归属维度可以根据实际需要调整,例如维度的层级以及维度的设置等。这样根据数据可用权限系数以及数据归属维度则可以得到各个数据归属维度的权限值,例如:用户维度权限值=x1*(r*{0,1}+w*{0,1}+d*{0,1}),根据选择存在【n/a=0,r=1,rw=3,rd=5,rwd=7】。
33.部门维度权限值=x2*(r*{0,1}+w*{0,1}+d*{0,1}),根据选择存在【n/a=0,r=10,rw=30,rd=50,rwd=70】。
34.机构维度权限值=x3*(r*{0,1}+w*{0,1}+d*{0,1}),根据选择存在【n/a=0,r=100,rw=300,rd=500,rwd=700】。
35.因此,目标实体的配置权限值为【用户级别权限值+部门级别权限值+机构级别权限值】,配置值区间为[1,777]。例如,777个位代表归属用户数据操作权限,十位代表归属部门数据操作权限,百位代表归属机构数据操作权限,具体可以参见图5所示的表格。
[0036]
如上述例子中,目标实体的配置权限可以包括用户具有读写删权限,部门具有读写权限,机构仅具有读权限,则用户维度为7,部门维度为30,机构维度为100,因此目标实体的权限配置值为7+30+100=137,数据操作请求解析插件直接从数据权限配置表中读取该目标实体对应的该权限配置值137。
[0037]
s210:根据操作类型、配置权限值以及当前登录用户信息生成权限隔离条件。
[0038]
具体地,此处生成权限隔离条件时对数据归属维度的操作顺序,也即匹配顺序可以是按照范围最大优先原则,即优先选择范围最大的数据归属维度进行匹配,然后依次减少,该范围的大小可以是用户预先配置的,例如机构大于部门大于用户。
[0039]
具体地,权限隔离条件的生成的原则是通过数据权限配置表的所需权限与用户持有权限进行位运算判断用户持有的权限所满足的数据归属维度,这样根据当前登录用户信息和用户持有的权限所满足的数据归属维度生成权限隔离条件。
[0040]
具体地,数据操作请求解析插件根据目标实体的权限配置值计算得到各个数据归属维度的配置权限值,例如提取不同的数位上的值,然后根据数位和数据归属维度的对应关系得到各个数据归属维度对应的配置权限值。这样根据各个数据归属维度对应的配置权限值与对应的范围隔离系数进行计算得到计算结果,并根据计算结果和操作类型选取隔离后的数据归属维度,这样根据当前登录用户信息和隔离后的数据归属维度即可以生成权限隔离条件,其中权限隔离条件中各个数据归属维度之间的逻辑关系符的选取可以是预先设置的,例如可以是通过and或者是or进行连接。
[0041]
s212:根据权限隔离条件对数据操作请求进行更新,并基于更新后的数据操作请求进行数据操作处理。
[0042]
具体地,此处是根据权限隔离条件和原始数据操作请求进行组装,得到更新后的
数据操作请求,并基于更新后的数据操作请求对数据库中的数据进行操作。例如可以获取预先设置的与操作类型对应的脚本组装逻辑,并根据该脚本组装逻辑将权限隔离条件和原始数据操作请求进行组装,例如将权限隔离条件组装至原始数据操作请求之后,并通过预设逻辑关系符连接,例如通过and进行连接。
[0043]
上述数据操作请求处理方法,在拦截到数据操作请求后,则首先进行解析得到操作类型、所涉及的目标实体以及当前登录用户信息,并根据预先配置的数据权限配置表查询得到操作类型以及目标实体对应的配置权限值,以判断是否可以进行对应的操作,并根据操作类型、配置权限值以及当前登录用户信息生成权限隔离条件,从而使得用户仅能处理对应当前登录用户信息的数据,不需要研发用户关注数据权限,仅需要重点关注业务即可,可以减少原有的开发工作量。且由于都是根据预先配置数据权限配置表进行操作的,因此若是需求变更则仅需要修改数据权限配置表即可,不需要修改代码等,大大节省了开发量和后期的运营维护成本,也就是说支持灵活配置,随时适应可变的业务数据隔离要求。
[0044]
在其中一个实施例中,请参见图6所示,图6为图2所示实施例中的步骤s210的流程图,该步骤s210,即根据操作类型、配置权限值以及当前登录用户信息生成权限隔离条件,包括:s602:按照预设的匹配顺序,读取配置权限值。
[0045]
具体地,预设匹配顺序可以是按照范围最大优先原则,即根据数据归属维度的范围的大小进行,例如上文的机构的范围大于部门的范围大于用户的范围,则可以依次将读取机构、部门和用户对应的配置权限值。
[0046]
其中,由于不同的数据归属维度所对应的数位不一样,因此可以直接读取对应数位上的值作为对应的数据归属维度的配置权限值。
[0047]
s604:将所读取的配置权限值与范围隔离系数进行计算,并将得到的计算结果与操作类型对应的位运算字符进行位运算,得到可操作的数据归属维度。
[0048]
具体地,范围隔离系数用于表征不同的数据归属维度所对应的数位的,例如用户维度对应的数位为个位,则对应的范围隔离系数为1,部门维度对应的数位为十位,则对应的范围隔离系数为10等。数据操作请求解析插件将所读取的配置权限值与范围隔离系数进行计算得到对应的数据归属维度的数据可用权限系数。数据操作请求解析插件将对应的数据归属维度的数据可用权限系数与操作类型对应的位运算字符进行位运算以确定可操作的数据归属维度。
[0049]
此处为了方便理解,假设数据权限配置表中对应的目标实体的配置权限值为137,对应的数据归属维度为机构、部门和用户,操作类型为删除,即对应的位运算字符为4,则首先确定读取配置权限值137,然后按照数位读取对应数据归属维度的配置权限值,例如机构100,部门30,用户为7。然后按照预设匹配顺序将所读取的配置权限值与范围隔离系数进行计算,例如先将100与机构的范围隔离系数100进行计算,即100/100得到商为1,再将1与操作类型对应的位运算字符进行位运算,即1&4=1&100=0,因此机构不是可操作的数据归属维度。则继续按照预设匹配顺序将部门的配置权限值30与部门的范围隔离系数10进行计算,即30/10得到商为3,再将3与操作类型对应的位运算字符进行位运算,即3&4=011&100=0,因此部门不是可操作的数据归属维度。则继续按照预设匹配顺序将用户的配置权限值7与用户的范围隔离系数1进行计算,即7/1得到商为7,再将7与操作类型对应的位运算字符进行
位运算,即7&4=111&100=100,因此用户是可操作的数据归属维度。
[0050]
s606:根据当前登录用户信息和可操作的数据归属维度得到权限隔离条件。
[0051]
数据操作请求解析插件获取预先定义的针对不同的操作类型的脚本组装逻辑,根据脚本组装逻辑将当前登录用户信息和可操作的数据归属维度生成权限隔离条件,如上文中,仅用户是可操作的数据归属维度,则权限隔离条件为用户数据归属维度=当前登录用户信息中的登录会话的用户id。
[0052]
数据操作请求解析插件在生成权限隔离条件后,则将权限隔离条件与原来的数据操作请求进行组装,例如将权限隔离条件拼接到原来的数据操作请求之后以对数据操作请求进行更新,例如按照如下格式进行拼接“原来的数据操作请求 and 权限隔离条件”。这样数据操作请求解析插件则根据更新后的数据操作请求对数据库进行数据处理。
[0053]
上述实施例中,通过数据权限配置表的所需权限与用户持有权限进行位运算判断用户持有的权限所满足的数据归属维度,这样根据当前登录用户信息和用户持有的权限所满足的数据归属维度生成权限隔离条件。
[0054]
在其中一个实施例中,获取预先配置的数据权限配置表之后,还包括:判断数据权限配置表中是否存在与目标实体对应的初始实体;当存在与目标实体对应的初始实体,则继续根据目标实体,从数据权限配置表中获取到对应配置权限值。在其中一个实施例中,判断是否存在与目标实体对应的初始实体之后,还包括:当不存在与目标实体对应的初始实体,则直接执行数据操作请求以进行数据操作处理。
[0055]
具体地,数据操作请求解析插件在解析得到目标实体后,则判断数据权限配置表中是否存在与目标实体对应的初始实体,也就是判断目标实体是否进行了权限控制,若是进行了权限控制,则在数据权限配置表中对应有初始实体,否则在数据权限配置表中没有相应的初始实体,且若是在数据权限配置表中存在有对应的初始实体,则可以按照上文中的内容进行权限控制。若是在数据权限配置表中没有相应的初始实体,则可以直接执行数据操作请求以进行数据操作处理。
[0056]
上述实施例中,对于存在权限控制的目标实体,则按照上文进行权限控制,而对于不存在权限控制的目标实体,则直接执行数据操作请求以进行数据操作处理。
[0057]
在其中一个实施例中,数据权限配置表的生成方式包括:获取预设字段匹配规则;根据预设字段匹配规则,建立数据表中对应字段的数据归属维度的字段。
[0058]
在其中一个实施例中,根据所述预设字段匹配规则,建立数据表中对应字段的数据归属维度的字段,包括:当对未落地的数据表进行配置时,则根据预设字段匹配规则,建立数据表中对应字段的数据归属维度的字段;当对已落地的数据表进行配置时,根据预设字段匹配规则,查询已落地的数据表中对应的待处理字段;通过建立视图的方式建立待处理字段对应的数据归属维度的字段。
[0059]
具体地,在采用上述方法之前,需要对数据表进行配置以得到数据权限配置表,具体地可以包括两种情况,一种是对未落地的数据表进行配置,一种是对已落地的数据表进行配置。
[0060]
对于未落地的数据表,则可以获取预设字段匹配规则,根据预设字段匹配规则建立数据表中对应字段的数据归属维度的字段,即查询数据表中对应于预设字段匹配规则的初始字段,然后将其替换为别名字段,别名字段为数据归属维度对应的字段。
[0061]
对于已落地的数据表,则可以通过图的方式建立待处理字段对应的别名字段,别名字段为数据归属维度对应的字段,例如采用内联视图,其中内联视图是sql语言(结构化查询语言)中三种主要视图(标准视图、内联视图、物化视图)中的一种。内联视图是一种临时视图,不存储到数据字典中。它和标准视图在使用过程中的主要区别是,不需要在进行select查询语句前进行视图的创建。这样将已落地的数据表中的对应与预设字段匹配规则的待处理字段提取出来,通过建立视图的方式建立待处理字段对应的数据归属维度的字段。
[0062]
上述实施例中,针对已落地和未落地的数据表均可以在数据权限配置表中进行配置,保证了应用的范围。
[0063]
在其中一个实施例中,请参见图7,图7为另一个实施例中的数据操作请求处理方法的流程图,在该实施例中,基于数据库持久层框架mybatis,通过继承mybatis提供的interface接口创建自定义拦截器。通过所创建的其拦截数据操作请求,并解析数据操作请求得到操作类型以及目标实体。根据目标实体判断是否存在对应的数据权限配置,即查询数据权限配置表中是否存在针对目标实体的权限配置,若是不存在,则直接执行对应的数据操作请求,若是存在,则进一步对数据操作请求进行解析得到当前登录用户信息,然后,根据数据权限配置表中的配置权限值与操作类型对应的位运算符进行计算得到可操作性的数据归属维度,这样从当前登录用户信息中提取与可操作性的数据归属维度对应的信息,将提取的信息与可操作性的数据归属维度进行组装得到权限隔离条件,最后根据权限隔离条件和原来的数据操作请求构建更新后的数据操作请求,也即构建替换sql,这样执行替换后的sql即可。
[0064]
上述数据操作请求处理方法,在拦截到数据操作请求后,则首先进行解析得到操作类型、所涉及的目标实体以及当前登录用户信息,并根据预先配置的数据权限配置表查询得到操作类型以及目标实体对应的配置权限值,以判断是否可以进行对应的操作,并根据操作类型、配置权限值以及当前登录用户信息生成权限隔离条件,从而使得用户仅能处理对应当前登录用户信息的数据,且由于都是根据预先配置数据权限配置表进行操作的,因此若是需求变更则仅需要修改数据权限配置表即可,不需要修改代码等,大大节省了开发量和后期的运营维护成本。
[0065]
为了方便理解,下文以一个例子对本申请中的数据操作请求处理方法进行说明:代理人张三在系统中有一个客户模块的功能可以使用,张三通过系统录入了客户a、客户b和客户c三条数据,系统管理员根据业务规则,参照图5中的表格,若是不可见,则直接配置为0,因此配置“同机构不可见”,“同部门不可见”,“用户可见、可改、可删”=(007),同部门李四录入客户d和客户e,该两条数据同样配置“同机构不可见”,“同部门不可见”,“用户可见、可改、可删”=(007)。在现有配置(007)的情况下查询客户列表时,张三显示客户a、客户b和客户c三条数据,李四显示客户d和客户e两条数据。当需要修改时,则可以直接修改配置,例如修改为(017),则代理张三和李四在查询客户列表时都能看到客户a、客户b、客户c、客户d和客户e这5条数据,但是代理人张三只能修改、删除客户a、客户b和客户c三条数据,李四只能修改、删除客户d和客户e数据,不同部门的其他代理人不可见张三和李四的客户数据,只对同部门数据查询共享。
[0066]
应该理解的是,虽然图2、图3、图4、图6和图7的流程图中的各个步骤按照箭头的指
示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图3、图4、图6和图7中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0067]
在一个实施例中,如图8所示,提供了一种数据操作请求处理装置,包括:拦截模块100、解析模块200、配置权限值获取模块300、权限隔离条件生成模块400和更新模块500,其中:拦截模块100,用于拦截数据操作请求;解析模块200,用于对所拦截的数据操作请求进行解析得到数据操作请求的操作类型、所涉及的目标实体以及当前登录用户信息;配置权限值获取模块300,用于获取预先配置的数据权限配置表,根据目标实体,从数据权限配置表中获取到对应配置权限值;权限隔离条件生成模块400,用于根据操作类型、配置权限值以及当前登录用户信息生成权限隔离条件;更新模块500,用于根据权限隔离条件对数据操作请求进行更新,并基于更新后的数据操作请求进行数据操作处理;权限隔离条件生成模块400包括:读取单元,用于按照预设的匹配顺序,读取配置权限值;位运算单元,用于将所读取的配置权限值与范围隔离系数进行计算,并将得到的计算结果与操作类型对应的位运算字符进行位运算,得到可操作的数据归属维度;生成单元,用于根据当前登录用户信息和可操作的数据归属维度得到权限隔离条件。
[0068]
在其中一个实施例中,上述的数据操作请求处理装置还可以包括:判断模块,用于判断数据权限配置表中是否存在与目标实体对应的初始实体;第一处理模块,用于当存在与目标实体对应的初始实体,则继续根据目标实体,从数据权限配置表中获取到对应配置权限值。
[0069]
在其中一个实施例中,上述的数据操作请求处理装置还可以包括:第二处理模块,用于当不存在与目标实体对应的初始实体,则直接执行数据操作请求以进行数据操作处理。
[0070]
在其中一个实施例中,上述的数据操作请求处理装置还可以包括:规则获取模块,用于获取预设字段匹配规则;匹配模块,用于根据预设字段匹配规则,建立数据表中对应字段的数据归属维度的字段。
[0071]
在其中一个实施例中,上述匹配模块还用于当对未落地的数据表进行配置时,则根据预设字段匹配规则,建立数据表中对应字段的数据归属维度的字段;当对已落地的数据表进行配置时,根据预设字段匹配规则,查询已落地的数据表中对应的待处理字段;通过建立视图的方式建立待处理字段对应的数据归属维度的字段。
[0072]
关于数据操作请求处理装置的具体限定可以参见上文中对于数据操作请求处理方法的限定,在此不再赘述。上述数据操作请求处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0073]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据权限配置表。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据操作请求处理方法。
[0074]
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0075]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:拦截数据操作请求;对所拦截的数据操作请求进行解析得到数据操作请求的操作类型、所涉及的目标实体以及当前登录用户信息;获取预先配置的数据权限配置表;根据目标实体,从数据权限配置表中获取到对应配置权限值;根据操作类型、配置权限值以及当前登录用户信息生成权限隔离条件,包括:获取操作类型对应的位运算符以及脚本组装逻辑;根据脚本组装逻辑提取当前登录用户信息中各个数据归属维度对应的会话信息;按照预设运算顺序,将会话信息对应的权限值与配置权限值进行位运算得到各个数据归属维度对应的匹配结果;根据各个数据归属维度对应的匹配结果以及操作类型对应的位运算符生成权限隔离条件;根据权限隔离条件对数据操作请求进行更新,并基于更新后的数据操作请求进行数据操作处理。
[0076]
在一个实施例中,处理器执行计算机程序时所实现的获取预先配置的数据权限配置表之后,还包括:按照预设的匹配顺序,读取配置权限值;将所读取的配置权限值与范围隔离系数进行计算,并将得到的计算结果与操作类型对应的位运算字符进行位运算,得到可操作的数据归属维度;根据当前登录用户信息和可操作的数据归属维度得到权限隔离条件。
[0077]
在一个实施例中,处理器执行计算机程序时所实现的获取预先配置的数据权限配置表之后,还包括:判断数据权限配置表中是否存在与目标实体对应的初始实体;当存在与目标实体对应的初始实体,则继续根据目标实体,从数据权限配置表中获取到对应配置权限值。
[0078]
在一个实施例中,处理器执行计算机程序时所实现的判断数据权限配置表中是否存在与目标实体对应的初始实体之后,还包括:当不存在与目标实体对应的初始实体,则直接执行数据操作请求以进行数据操作处理。
[0079]
在一个实施例中,处理器执行计算机程序时所涉及的数据权限配置表的生成方式包括:获取预设字段匹配规则;根据预设字段匹配规则,建立数据表中对应字段的数据归属
维度的字段。
[0080]
在一个实施例中,处理器执行计算机程序时所涉及的建立数据表中对应字段的数据归属维度的字段包括:当对未落地的数据表进行配置时,则根据预设字段匹配规则,建立数据表中对应字段的数据归属维度的字段;当对已落地的数据表进行配置时,根据预设字段匹配规则,查询已落地的数据表中对应的待处理字段;通过建立视图的方式建立待处理字段对应的数据归属维度的字段。
[0081]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:拦截数据操作请求;对所拦截的数据操作请求进行解析得到数据操作请求的操作类型、所涉及的目标实体以及当前登录用户信息;获取预先配置的数据权限配置表;根据目标实体,从数据权限配置表中获取到对应配置权限值;根据操作类型、配置权限值以及当前登录用户信息生成权限隔离条件,包括:获取操作类型对应的位运算符以及脚本组装逻辑;根据脚本组装逻辑提取当前登录用户信息中各个数据归属维度对应的会话信息;按照预设运算顺序,将会话信息对应的权限值与配置权限值进行位运算得到各个数据归属维度对应的匹配结果;根据各个数据归属维度对应的匹配结果以及操作类型对应的位运算符生成权限隔离条件;根据权限隔离条件对数据操作请求进行更新,并基于更新后的数据操作请求进行数据操作处理。
[0082]
在一个实施例中,计算机程序被处理器执行时所实现的获取预先配置的数据权限配置表之后,还包括:判断数据权限配置表中是否存在与目标实体对应的初始实体;当存在与目标实体对应的初始实体,则继续根据目标实体,从数据权限配置表中获取到对应配置权限值。
[0083]
在一个实施例中,计算机程序被处理器执行时所实现的判断数据权限配置表中是否存在与目标实体对应的初始实体之后,还包括:当不存在与目标实体对应的初始实体,则直接执行数据操作请求以进行数据操作处理。
[0084]
在一个实施例中,计算机程序被处理器执行时所涉及的数据权限配置表的生成方式包括:获取预设字段匹配规则;根据预设字段匹配规则,建立数据表中对应字段的数据归属维度的字段。
[0085]
在一个实施例中,计算机程序被处理器执行时所涉及的建立数据表中对应字段的数据归属维度的字段包括:当对未落地的数据表进行配置时,则根据预设字段匹配规则,建立数据表中对应字段的数据归属维度的字段;当对已落地的数据表进行配置时,根据预设字段匹配规则,查询已落地的数据表中对应的待处理字段;通过建立视图的方式建立待处理字段对应的数据归属维度的字段。
[0086]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read
‑
only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存
储器(dynamic random access memory,dram)等。
[0087]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0088]
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。