【技术实现步骤摘要】
访问控制方法、装置、电子设备及存储介质
[0001]本申请涉及计算机
,尤其涉及一种访问控制方法、装置、电子设备及存储介质。
技术介绍
[0002]Presto是一个分布式SQL(Structured Query Language,结构化查询语言)查询引擎,其凭借清晰的架构、简单的数据结构、丰富的插件接口等特点,在众多内存计算型数据库中脱颖而出。
[0003]目前,Presto有两大分支:PrestoDB、PrestoSQL,两者独立发展。在PrestoSQL中,可应用Apache Ranger Presto Plugin技术实现管理Presto的数据访问权限。
[0004]然而,Apache Ranger Presto Plugin技术只适用于PrestoSQL,并不支持在PrestoDB中部署。因此,亟需一种能够在PrestoDB中实现管理Presto的数据访问权限的方法。
技术实现思路
[0005]本申请实施例的目的在于提供一种访问控制方法、装置、电子设备及存储介质,以实现能够在P ...
【技术保护点】
【技术特征摘要】
1.一种访问控制方法,其特征在于,包括:接收来自客户端的数据库查询语句,生成所述数据库查询语句的抽象语法树;调用预设的语法解析器对所述抽象语法树进行解析,确定所述数据库查询语句包含的每一项数据库操作,以及每一项所述数据库操作对应的目标数据;确定所述客户端对每一所述目标数据的操作权限;当确定每一项所述数据库操作与对应的所述目标数据的操作权限相匹配时,执行所述数据库查询语句。2.根据权利要求1所述的方法,其特征在于,所述调用预设的语法解析器对所述抽象语法树进行解析,确定所述数据库查询语句包含的每一项数据库操作,以及每一项所述数据库操作对应的目标数据,包括:从所述抽象语法树的根节点开始进行遍历,若遍历到的节点属于定义有数据库操作的节点类型,则获取数据库操作;继续遍历当前遍历到的所述节点下,属于定义有数据信息的节点类型的子节点,调用与获取的所述数据库操作对应的语法解析器,对当前遍历到的所述子节点进行解析,得到所述子节点中封装的数据信息;基于所述数据信息确定获取的所述数据库操作对应的目标数据。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:将数据库中的权限配置表所存储的多条权限配置信息写入本地预设缓存中;所述确定所述客户端对每一所述目标数据的操作权限,包括:基于所述本地预设缓存中存储的数据,确定所述客户端对每一所述目标数据的操作权限。4.根据权利要求3所述的方法,其特征在于,所述将数据库中的权限配置表所存储的多条权限配置信息写入本地预设缓存中,包括:针对数据库中的权限配置表所存储的每一条权限配置信息,将所述权限配置信息包含的客户端标识、数据标识,以及操作权限进行拼接,得到权限关键字;将每一所述权限关键字写入本地预设缓存中;所述基于所述本地预设缓存中存储的数据,确定所述客户端对每一所述目标数据的操作权限,包括:针对每一所述目标数据,将所述客户端的客户端标识、所述目标数据的数据标识,以及所述目标数据对应的所述数据库操作进行拼接,得到第一关键字;在所述预设缓存中查找所述第一关键字;根据查找结果,确定所述客户端对每一所述目标数据的操作权限。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:在将所述权限关键字写入所述本地预设缓存时,设置所述权限关键字的缓存有效期;当检测到任一所述权限关键字在所述本地预设缓存中的存在时长达到对应的所述缓存有效期时,从任一所述权限关键字中解析出第一客户端标识、第一数据标识,从所述权限配置表中查找包含所述第一客户端标识、所述第一数据标识的目标权限配置信息;将所述目标权限配置信息包含的客户端标识、数据标识,以及操作权限进行拼接,得到第二关键字;
利用所述第二关键字更新所述预设缓存中的所述权限关键字。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:当确定任一项所述数据库操作与对应的所述目标数据的操作权限不匹配时,拒绝执行所述数据库查询语句。7.一种访问控制方法,其特征在于,应用于PrestoDB数据查询,包括:接收来自客户端的Presto任务,从所述Presto任务的脚本文件中解析出至少一条数据库查询语句;针对每一条所述数据库查询语句,调用所述PrestoDB中的Presto
‑
parser模块生成所述数据库查询语句...
【专利技术属性】
技术研发人员:陈华佳,徐道帆,田力,李羽,
申请(专利权)人:微民保险代理有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。