一种基于SQL语句解析的数据权限控制方法及装置制造方法及图纸

技术编号:14273637 阅读:110 留言:0更新日期:2016-12-23 18:18
本发明专利技术提供了一种基于SQL语句解析的数据权限控制方法及装置,其中,该方法包括:首先,接收业务功能操作请求,该业务功能操作请求携带有用户标识和业务功能操作类型;然后,根据上述业务功能操作请求确定与上述业务功能操作类型对应的SQL语句和与上述用户标识对应的数据权限范围;最后,解析上述SQL语句,并根据上述数据权限范围和解析后的SQL语句生成新的SQL语句,该新的SQL语句用于根据所述数据权限范围完成所述业务功能操作请求。本发明专利技术实施例通过在执行SQL语句时进行数据权限的限制,从而解决数据权限控制过程繁琐、规则配置量大、业务功能开发人员的开发维护成本高、开发难度高的问题。

【技术实现步骤摘要】

本专利技术涉及数据权限设置
,具体而言,涉及一种基于SQL语句解析的数据权限控制方法及装置
技术介绍
目前,在各类内容管理系统和数据库应用系统中,针对不用的业务应用场景,设定具有不同角色的用户对相应的业务数据进行创建、查询、修改、删除等数据操作,以满足实际生产的需要。例如:在一个统一物流管理系统中,包含全国不同的快递公司,且每个快递公司有不同的岗位人员,在该物流管理系统中每个岗位人员具有不同的角色,执行不同的系统功能。该控制方式为基于角色的粗粒度功能权限控制,然而,实际上,在该物流管理系统中具有相同功能操作的岗位人员所能操作的数据也可能有所不如,例如:在该物流管理系统中还存在平台物流业务管理人员,该物流业务管理人员各自管理部分省市的快递公司数据,彼此之间各不影响,因而,将涉及到更细粒度的数据权限控制,即需要通过数据权限来进行控制。当前,相关技术中提供了一种数据权限控制方法,该方法主要是:目前行业中部分数据权限的控制都与角色功能上有耦合,业务功能开发人员在设计运行程序时将业务功能操作所对应部分核心业务数据上进行控制,采用功能规则模式,用于系统功能拦截进行数据权限验证,对用户操作时对应的规则范围内的数据进行整合过滤,将整合过滤后的数据范围作为最终的用户数据权限范围。采用该方式进行数据权限控制需要大量的规则配置,过程繁琐配置量较大,而且采用基于功能级别规则模式的数据权限进行控制,业务功能开发人员在进行业务功能开发时需要了解到数据范围的来源控制,从而增加了业务功能开发人员的开发难度,同时,系统业务功能彼此之间存在调用关系,从而进一步增加了对数据的权限控制难度,尤其,一旦部分业务权限规则变更将会因耦合度大导致风险不易把控。在实现本专利技术的过程中,专利技术人发现相关技术中至少存在以下问题:采用相关技术中的基于功能级别规则模式的数据权限控制方法存在数据权限控制过程繁琐、规则配置量大、业务功能开发人员的开发维护成本高、开发难度高的问题。
技术实现思路
有鉴于此,本专利技术实施例的目的在于提供一种基于SQL语句解析的数据权限控制方法及装置,以解决相关技术中的数据权限控制过程繁琐、规则配置量大、业务功能开发人员的开发维护成本高、开发难度高的问题。第一方面,本专利技术实施例提供了一种基于SQL语句解析的数据权限控制方法,该方法包括:接收业务功能操作请求,所述业务功能操作请求携带有用户标识和业务功能操作类型;根据所述业务功能操作请求确定与所述业务功能操作类型对应的SQL语句和与所述用户标识对应的数据权限范围;解析所述SQL语句,并根据所述数据权限范围和解析后的所述SQL语句生成新的SQL语句,所述新的SQL语句用于根据所述数据权限范围完成所述业务功能操作请求。结合第一方面,本专利技术实施例提供了第一方面的第一种可能的实施方式,其中,所述根据所述业务功能操作请求确定与所述业务功能操作类型对应的SQL语句和与所述用户标识对应的数据权限范围之后,还包括:调取所述SQL语句对应的SQL注解;根据所述SQL注解确定需要进行数据权限控制的SQL语句。结合第一方面的第一种可能的实施方式,本专利技术实施例提供了第一方面的第二种可能的实施方式,其中,所述解析所述SQL语句,包括:对确定出的需要进行数据权限控制的SQL语句进行解析。结合第一方面,本专利技术实施例提供了第一方面的第三种可能的实施方式,其中,所述根据所述数据权限范围和解析后的所述SQL语句生成新的SQL语句,包括:将所述用户标识对应的数据权限范围作为限定条件;判断解析后的所述SQL语句中是否存在where限定条件语句;若是,则将所述限定条件添加至所述where限定条件语句,生成新的SQL语句;若否,则根据所述限定条件创建where限定条件语句,生成新的SQL语句。结合第一方面至第一方面的第三种可能的实施方式中任一种可能的实施方式,本专利技术实施例提供了第一方面的第四种可能的实施方式,其中,所述方法还包括:接收数据权限范围修改请求,所述数据权限范围修改请求携带有用户标识和欲修改后的数据权限范围;根据所述欲修改后的数据权限范围更新所述用户标识对应的数据权限范围。第二方面,本专利技术实施例还提供了一种基于SQL语句解析的数据权限控制装置,该装置包括:第一接收模块,用于接收业务功能操作请求,所述业务功能操作请求携带有用户标识和业务功能操作类型;第一确定模块,用于根据所述业务功能操作请求确定与所述业务功能操作类型对应的SQL语句和与所述用户标识对应的数据权限范围;SQL语句生成模块,用于解析所述SQL语句,并根据所述数据权限范围和解析后的所述SQL语句生成新的SQL语句,所述新的SQL语句用于根据所述数据权限范围完成所述业务功能操作请求。结合第二方面,本专利技术实施例提供了第二方面的第一种可能的实施方式,其中,所述装置还包括:调取模块,用于调取所述SQL语句对应的SQL注解;第二确定模块,用于根据所述SQL注解确定需要进行数据权限控制的SQL语句。结合第二方面的第一种可能的实施方式,本专利技术实施例提供了第二方面的第二种可能的实施方式,其中,所述SQL语句生成模块包括:SQL语句解析单元,用于对确定出的需要进行数据权限控制的SQL语句进行解析。结合第二方面,本专利技术实施例提供了第二方面的第三种可能的实施方式,其中,所述SQL语句生成模块包括:限定条件确定单元,用于将所述用户标识对应的数据权限范围作为限定条件;判断单元,用于判断解析后的所述SQL语句中是否存在where限定条件语句;新的SQL语句生成单元,用于当存在where限定条件语句时,则将所述限定条件添加至所述where限定条件语句,生成新的SQL语句;当不存在where限定条件语句时,则根据所述限定条件创建where限定条件语句,生成新的SQL语句。结合第二方面至第二方面的第三种可能的实施方式中任一种可能的实施方式,本专利技术实施例提供了第二方面的第四种可能的实施方式,其中,所述装置还包括:第二接收模块,用于接收数据权限范围修改请求,所述数据权限范围修改请求携带有用户标识和欲修改后的数据权限范围;数据权限范围更新模块,用于根据所述欲修改后的数据权限范围更新所述用户标识对应的数据权限范围。在本专利技术实施例提供的基于SQL语句解析的数据权限控制方法及装置中,该方法包括:首先,接收业务功能操作请求,该业务功能操作请求携带有用户标识和业务功能操作类型;然后,根据上述业务功能操作请求确定与上述业务功能操作类型对应的SQL语句和与上述用户标识对应的数据权限范围;最后,解析上述SQL语句,并根据上述数据权限范围和解析后的SQL语句生成新的SQL语句,该新的SQL语句用于根据所述数据权限范围完成所述业务功能操作请求。本专利技术实施例通过在执行SQL语句时进行数据权限的限制,无需业务功能开发人员关注任何数据权限的相关细节,减少了对系统功能开发的开发成本、降低了代码侵入性和耦合度并具有可扩展性,从而解决数据权限控制过程繁琐、规则配置量大、业务功能开发人员的开发维护成本高、开发难度高的问题。为使本专利技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下本文档来自技高网
...
一种基于SQL语句解析的数据权限控制方法及装置

【技术保护点】
一种基于SQL语句解析的数据权限控制方法,其特征在于,所述方法包括:接收业务功能操作请求,所述业务功能操作请求携带有用户标识和业务功能操作类型;根据所述业务功能操作请求确定与所述业务功能操作类型对应的SQL语句和与所述用户标识对应的数据权限范围;解析所述SQL语句,并根据所述数据权限范围和解析后的所述SQL语句生成新的SQL语句,所述新的SQL语句用于根据所述数据权限范围完成所述业务功能操作请求。

【技术特征摘要】
1.一种基于SQL语句解析的数据权限控制方法,其特征在于,所述方法包括:接收业务功能操作请求,所述业务功能操作请求携带有用户标识和业务功能操作类型;根据所述业务功能操作请求确定与所述业务功能操作类型对应的SQL语句和与所述用户标识对应的数据权限范围;解析所述SQL语句,并根据所述数据权限范围和解析后的所述SQL语句生成新的SQL语句,所述新的SQL语句用于根据所述数据权限范围完成所述业务功能操作请求。2.根据权利要求1所述的方法,其特征在于,所述根据所述业务功能操作请求确定与所述业务功能操作类型对应的SQL语句和与所述用户标识对应的数据权限范围之后,还包括:调取所述SQL语句对应的SQL注解;根据所述SQL注解确定需要进行数据权限控制的SQL语句。3.根据权利要求2所述的方法,其特征在于,所述解析所述SQL语句,包括:对确定出的需要进行数据权限控制的SQL语句进行解析。4.根据权利要求1所述的方法,其特征在于,所述根据所述数据权限范围和解析后的所述SQL语句生成新的SQL语句,包括:将所述用户标识对应的数据权限范围作为限定条件;判断解析后的所述SQL语句中是否存在where限定条件语句;若是,则将所述限定条件添加至所述where限定条件语句,生成新的SQL语句;若否,则根据所述限定条件创建where限定条件语句,生成新的SQL语句。5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:接收数据权限范围修改请求,所述数据权限范围修改请求携带有用户标识和欲修改后的数据权限范围;根据所述欲修改后的数据权限范围更新所述用户标识对应的数据权限范围。6.一种基于SQL语句解析的数据权限控制装置,其特征在于,所述装...

【专利技术属性】
技术研发人员:高源
申请(专利权)人:天津西瑞尔信息工程有限公司
类型:发明
国别省市:天津;12

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

1