【技术实现步骤摘要】
数据访问控制方法、装置、设备及介质
[0001]本专利技术涉及数据库
,尤其涉及数据访问控制方法、装置、设备及介质。
技术介绍
[0002]自主访问控制是通过授权和回收对象权限来控制用户访问权限,粒度可以达到列级,如:表或视图指定列的查询权限。
[0003]当用户自主访问一个表或视图指定列时,可以对指定列所有数据行都有指定的访问权限,或者可以对指定列所有数据行都没有指定的访问权限,无法指定用户只能访问指定列的部分行数据。
技术实现思路
[0004]本专利技术提供了一种数据访问控制方法、装置、设备及介质,以实现更细粒度的自主访问控制。
[0005]根据本专利技术的第一方面,提供了一种数据访问控制方法,所述方法,包括:
[0006]获取用于数据信息查询的原始结构化查询语言SQL语句并分析;
[0007]在所述原始SQL语句所对应访问对象的被访项存在预设的关联函数时,基于所述关联函数改写所述原始SQL语句,形成待查询SQL语句;
[0008]通过所述待查询SQL语句包含的访问条件进行数据筛选,获得数据查询结果。
[0009]根据本专利技术的第二方面,提供了一种数据访问控制装置,所述装置包括:
[0010]语句分析模块,用于获取用于数据信息查询的原始结构化查询语言SQL语句并分析;
[0011]语句形成模块,用于在所述原始SQL语句所对应访问对象的被访项存在预设的关联函数时,基于所述关联函数改写所述原始SQL语句,形成待查询SQL语句;r/>[0012]结果获得模块,用于通过所述待查询SQL语句包含的访问条件进行数据筛选,获得数据查询结果。
[0013]根据本专利技术的第三方面,提供了一种电子设备,所述电子设备包括:
[0014]至少一个处理器;以及
[0015]与所述至少一个处理器通信连接的存储器;其中,
[0016]所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本专利技术任一实施例所述的数据访问控制方法。
[0017]根据本专利技术的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本专利技术任一实施例所述的数据访问控制方法。
[0018]本专利技术实施例的技术方案,通过获取用于数据信息查询的原始结构化查询语言SQL语句并分析;在原始SQL语句所对应访问对象的被访项存在预设的关联函数时,基于关
联函数改写原始SQL语句,形成待查询SQL语句;通过待查询SQL语句包含的访问条件进行数据筛选,获得数据查询结果。通过预设的关联函数对原始SQL语句进行改写,形成包含访问条件的待查询SQL语句,控制查询者只能访问满足访问条件的数据,得到数据查询结果。实现了对原始SQL语句的自动化改写,进而实现与查询者访问权限相匹配查询结果的精准查询,满足了列级细粒度访问控制下对行级数据访问权限的管理要求。
[0019]应当理解,本部分所描述的内容并非旨在标识本专利技术的实施例的关键或重要特征,也不用于限制本专利技术的范围。本专利技术的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0020]为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021]图1是根据本专利技术实施例一提供的一种数据访问控制方法的流程图;
[0022]图2是根据本专利技术实施例二提供的一种数据访问控制方法的流程图;
[0023]图3是根据本专利技术实施例三提供的一种数据访问控制装置的结构示意图;
[0024]图4是实现本专利技术实施例的电子设备的结构示意图。
具体实施方式
[0025]为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。
[0026]需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0027]实施例一
[0028]图1为本专利技术实施例一提供了一种数据访问控制方法的流程图,本实施例可适用于访问权限自动控制的情况,该方法可以由数据访问控制装置来执行,该数据访问控制装置可以采用硬件和/或软件的形式实现,该数据访问控制装置可配置于电子设备中。如图1所示,该方法包括:
[0029]S110、获取用于数据信息查询的原始结构化查询语言SQL语句并分析。
[0030]在本实施例中,原始结构化查询语言(StructuredQueryLanguage,SQL)语句可以理解为对数据库中要查询的数据项而形成的语句。
[0031]具体的,查询者对数据信息进行查询时可以按照结构化查询语言的语法输入要查询的对象的名称,以及该对象中具体要查询的列的名称,形成原始结构化查询语言SQL语句发送处理器进行查询。处理器可以获取原始SQL语句并对原始SQL语句进行分析。
[0032]S120、在原始SQL语句所对应访问对象的被访项存在预设的关联函数时,基于关联函数改写原始SQL语句,形成待查询SQL语句。
[0033]在本实施例中,访问对象可以理解为查询者要查询的内容对应存储于的数据库字典对象。被访项可以理解为访问对象中的要访问的列。关联函数可以理解为提供筛选条件的函数。
[0034]其中,关联函数作为访问筛选条件函数,基于访问者属性信息、运行环境属性信息或其他相关数据表信息所构建。
[0035]在本实施例中,待查询SQL语句可以理解为包括筛选条件的语句。
[0036]具体的,由于查询者要查询的列中可能包括该查询者没有权限的内容,则首先需要确定查询者访问对象中的被访问项是否有相应的筛选条件。预先设定的关联函数中可以包括关联函数及其对应的被访项的关联信息,处理器可以对原始SQL语句进行分析后,确定出原始SQL语句所对应的访问对象及被访项,如表或视图及列等,可以在预先建立的关联函数中进行查找,确定访问对象的被访项是否有对应的关联函数,当被访项存在预设的关联函本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种数据访问控制方法,其特征在于,包括:获取用于数据信息查询的原始结构化查询语言SQL语句并分析;在所述原始SQL语句所对应访问对象的被访项存在预设的关联函数时,基于所述关联函数改写所述原始SQL语句,形成待查询SQL语句;通过所述待查询SQL语句包含的访问条件进行数据筛选,获得数据查询结果。2.根据权利要求1所述的方法,其特征在于,确定所述原始SQL语句所对应访问对象的被访项存在预设的关联函数的步骤包括:通过相对所述原始SQL语句的分析结果,确定访问对象及所述访问对象中的被访项;如果所述访问对象为数据表或视图,则确定所述访问对象中是否存在具备预设关联函数的目标数据列;若存在,则当所述被访项属于所述目标数据列时,确定所述被访项存在关联函数。3.根据权利要求1所述的方法,其特征在于,所述基于所述关联函数改写所述原始SQL语句,形成待查询SQL语句,包括:将所述原始SQL语句中对应的所述访问对象改写为派生访问对象,并确定所述派生访问对象的对象名称;对包含在所述派生访问对象中的所述被访项使用所述关联函数进行改写,获得表征所述被访项的条件表达式;基于所述条件表达式及所述对象名称,构成所述被访项的子查询语句,其中,所述派生访问对象为所述子查询语句对应的子访问对象;采用所述子查询语句替换所述原始SQL语句中被访项对应访问对象的描述信息,构成所述待查询SQL语句。4.根据权利要求3所述的方法,其特征在于,所述对包含在所述派生访问对象中的所述被访项使用所述关联函数进行改写,获得表征所述被访项的条件表达式,包括:如果所述被访项只具备一个关联函数,则获取所述关联函数的布尔表达式;否则,采用设定连接符串联各所述关联函数的布尔表达式,获得串联后的布尔表达式;当所述被访项所对应的行数据满足所述布尔表达式时,则将所述条件表达式的返回值设定为所述被访项的原始数据;当所述被访项所对应的行数据不满足所述布尔表达式时,确定所述被访项是否存在预...
【专利技术属性】
技术研发人员:望声宜,郭琰,韩朱忠,
申请(专利权)人:上海达梦数据库有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。