权限控制方法及装置制造方法及图纸

技术编号:13762414 阅读:47 留言:0更新日期:2016-09-27 17:20
本发明专利技术公开了一种权限控制方法及装置,包括:接收针对数据库的表创建请求;判断发出所述表创建请求的用户所具有的针对所述数据库的权限是否能够覆盖全部表创建权限;若所述用户所具有的针对所述数据库的权限能够覆盖全部表创建权限,则不再针对所述用户执行表创建权限的授权,并创建表;若所述用户所具有的针对所述数据库的权限不能覆盖全部表创建权限,则执行所述用户所欠缺的表创建权限的授权,并创建表。本发明专利技术提出的权限控制方法及装置,能够避免重复授权。

【技术实现步骤摘要】

本专利技术涉及数据处理
,特别是指一种权限控制方法及装置
技术介绍
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序,从而充分利用集群进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的硬件上;而且它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。HDFS放宽了POSIX(Portable Operating System Interface,可移植操作系统接口)的要求,可以以流的形式访问文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。MapReduce是一种编程模型,用于大规模数据集的并行运算。HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算。hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供sql(Structured Query Language,结构化查询语言)查询功能,可以将sql语句转换为MapReduce任务进行运行。Hadoop和hive是目前业界广泛使用的数据存储以及查询的分布式解决方案。为了生产环境安全因素的需要,需要对hive中的权限进行控制。当前hive中的默认的权限认证,提供了对数据库和表的授权控制,可以对用户和角色授权。但是,这种权限控制还存在比较显著的问题:用户每创建一个表,系统都会自动对该新建的表进行授权,这样将会发生表被重复授权的情况,导致元数据表的压力和增加返回的数据结果。
技术实现思路
有鉴于此,本专利技术的目的在于提出一种权限控制方法及装置,能够避免重复授权。基于上述目的本专利技术实施例提供的权限控制方法,包括:接收针对数据库的表创建请求;判断发出所述表创建请求的用户所具有的针对所述数据库的权限是否能够覆盖全部表创建权限;若所述用户所具有的针对所述数据库的权限能够覆盖全部表创建权限,则不再针对所述用户执行表创建权限的授权,并创建表;若所述用户所具有的针对所述数据库的权限不能覆盖全部表创建权限,则执行所述用户所欠缺的表创建权限的授权,并创建表。在一些实施方式中,所述判断发出所述表创建请求的用户所具有的针对所述数据库的权限是否能够覆盖全部表创建权限的步骤包括:查询所述数据库的表权限数据表中存在的所述用户具有的权限;判断所述用户具有的权限是否能够覆盖全部表创建权限;如果用户具有的权限能够覆盖全部表创建权限,则不再针对所述用户执行表创建权限的授权;如果用户具有的权限不能覆盖全部表创建权限,则查询所述数据库的表权限数据表中存在的所述用户所在组具有的权限;判断所述用户具有的权限以及所述用户所在组具有的权限是否能够覆盖全部表创建权限;如果用户具有的权限以及所述用户所在组具有的权限能够覆盖全部表创建权限,则不再针对所述用户执行表创建权限的授权;如果用户具有的权限以及所述用户所在组具有的权限不能覆盖全部表创建权限,则查询所述数据库的表权限数据表中存在的所述用户所拥有的角色具有的权限;判断所述用户具有的权限、所述用户所在组具有的权限以及所述用户所拥有的角色具有的权限是否能够覆盖全部表创建权限;如果用户具有的权限、所述用户所在组具有的权限以及所述用户所拥有的角色具有的权限能够覆盖全部表创建权限,则不再针对所述用户执行表创建权限的授权;如果用户具有的权限、所述用户所在组具有的权限以及所述用户所拥有的角色具有的权限不能覆盖全部表创建权限,则执行所述用户所欠缺的表创建权限的授权。在一些实施方式中,所述判断发出所述表创建请求的用户所具有的针对所述数据库的权限是否能够覆盖全部表创建权限的步骤包括:发出所述用户所具有的针对所述数据库的权限查询请求;判断查询结果是否为空;若查询结果为空,则重复发出所述用户所具有的针对所述数据库的权限查询请求。在一些实施方式中,所述重复发出所述用户所具有的针对所述数据库的权限查询请求的步骤中的重复发出权限查询请求的次数大于或等于预设重试次数;若重复发出权限查询请求的次数大于或等于预设重试次数之后,所述查询结果仍然为空,则不再重试,并返回查询失败的结果。在一些实施方式中,所述接收针对数据库的表创建请求的步骤之前还包括:创建超级管理员账号白名单;在对所述用户执行授权或解除权限之前,判断所述用户是否存在于所述超级管理员账号白名单中;若所述用户存在于所述超级管理员账号白名单中,则对所述用户执行授权或解除权限;若所述用户不存在于所述超级管理员账号白名单中,则不对所述用户执行授权或解除权限。本专利技术实施例的另一个方面,还提供了一种权限控制装置,包括:请求接收模块,用于接收针对数据库的表创建请求;权限覆盖判断模块,用于判断发出所述表创建请求的用户所具有的针对所述数据库的权限是否能够覆盖全部表创建权限;表授权模块,若所述用户所具有的针对所述数据库的权限能够覆盖全部表创建权限,则用于不再针对所述用户执行表创建权限的授权;若所述用户所具有的针对所述数据库的权限不能覆盖全部表创建权限,则用于执行所述用户所欠缺的表创建权限的授权;表创建模块,用于创建表。在一些实施方式中,所述权限覆盖判断模块,具体用于:查询所述数据库的表权限数据表中存在的所述用户具有的权限;判断所述用户具有的权限是否能够覆盖全部表创建权限;如果用户具有的权限能够覆盖全部表创建权限,则不再针对所述用户执行表创建权限的授权;如果用户具有的权限不能覆盖全部表创建权限,则查询所述数据库的表权限数据表中存在的所述用户所在组具有的权限;判断所述用户具有的权限以及所述用户所在组具有的权限是否能够覆盖全部表创建权限;如果用户具有的权限以及所述用户所在组具有的权限能够覆盖全部表创建权限,则不再针对所述用户执行表创建权限的授权;如果用户具有的权限以及所述用户所在组具有的权限不能覆盖全部表创建权限,则查询所述数据库的表权限数据表中存在的所述用户所拥有的角色具有的权限;判断所述用户具有的权限、所述用户所在组具有的权限以及所述用户所拥有的角色具有的权限是否能够覆盖全部表创建权限;如果用户具有的权限、所述用户所在组具有的权限以及所述用户所拥有的角色具有的权限能够覆盖全部表创建权限,则不再针对所述用户执行表创建权限的授权;如果用户具有的权限、所述用户所在组具有的权限以及所述用户所拥有的角色具有的权限不能覆盖全部表创建权限,则执行所述用户所欠缺的表创建权限的授权。在一些实施方式中,所述权限覆盖判断模块,具体用于:查询所述用户所具有的针对所述数据库的权限;判断查询结果是否为空;若查询结果为空,则重复发出所述用户所具有的针对所述数据库的权限查询请求。在一些实施方式中,重复发出权限查询请求的次数大于或等于预设重试次数;所述权限覆盖判断模块,具体用于:若重复发出权限查询请求的次数大于或等于预设重试次数之后,所述查询结果仍然为空,则不再重试,并返回查询失败的结果。在一些实施方式中,所述的装置,还包括:白名单创建模块,用于创建超级管理员账号白名单;用户权限判断模块,在对所述用户执行授权或解除权限之前,用于判断所
述用户是否存本文档来自技高网
...

【技术保护点】
一种权限控制方法,其特征在于,包括:接收针对数据库的表创建请求;判断发出所述表创建请求的用户所具有的针对所述数据库的权限是否能够覆盖全部表创建权限;若所述用户所具有的针对所述数据库的权限能够覆盖全部表创建权限,则不再针对所述用户执行表创建权限的授权,并创建表;若所述用户所具有的针对所述数据库的权限不能覆盖全部表创建权限,则执行所述用户所欠缺的表创建权限的授权,并创建表。

【技术特征摘要】
1.一种权限控制方法,其特征在于,包括:接收针对数据库的表创建请求;判断发出所述表创建请求的用户所具有的针对所述数据库的权限是否能够覆盖全部表创建权限;若所述用户所具有的针对所述数据库的权限能够覆盖全部表创建权限,则不再针对所述用户执行表创建权限的授权,并创建表;若所述用户所具有的针对所述数据库的权限不能覆盖全部表创建权限,则执行所述用户所欠缺的表创建权限的授权,并创建表。2.根据权利要求1所述的方法,其特征在于,所述判断发出所述表创建请求的用户所具有的针对所述数据库的权限是否能够覆盖全部表创建权限的步骤包括:查询所述数据库的表权限数据表中存在的所述用户具有的权限;判断所述用户具有的权限是否能够覆盖全部表创建权限;如果用户具有的权限能够覆盖全部表创建权限,则不再针对所述用户执行表创建权限的授权;如果用户具有的权限不能覆盖全部表创建权限,则查询所述数据库的表权限数据表中存在的所述用户所在组具有的权限;判断所述用户具有的权限以及所述用户所在组具有的权限是否能够覆盖全部表创建权限;如果用户具有的权限以及所述用户所在组具有的权限能够覆盖全部表创建权限,则不再针对所述用户执行表创建权限的授权;如果用户具有的权限以及所述用户所在组具有的权限不能覆盖全部表创建权限,则查询所述数据库的表权限数据表中存在的所述用户所拥有的角色具有的权限;判断所述用户具有的权限、所述用户所在组具有的权限以及所述用户所拥有的角色具有的权限是否能够覆盖全部表创建权限;如果用户具有的权限、所述用户所在组具有的权限以及所述用户所拥有的角色具有的权限能够覆盖全部表创建权限,则不再针对所述用户执行表创建权限的授权;如果用户具有的权限、所述用户所在组具有的权限以及所述用户所拥有的角色具有的权限不能覆盖全部表创建权限,则执行所述用户所欠缺的表创建权限的授权。3.根据权利要求1或2所述的方法,其特征在于,所述判断发出所述表创建请求的用户所具有的针对所述数据库的权限是否能够覆盖全部表创建权限的步骤包括:发出所述用户所具有的针对所述数据库的权限查询请求;判断查询结果是否为空;若查询结果为空,则重复发出所述用户所具有的针对所述数据库的权限查询请求。4.根据权利要求3所述的方法,其特征在于,所述重复发出所述用户所具有的针对所述数据库的权限查询请求的步骤中的重复发出权限查询请求的次数大于或等于预设重试次数;若重复发出权限查询请求的次数大于或等于预设重试次数之后,所述查询结果仍然为空,则不再重试,并返回查询失败的结果。5.根据权利要求1所述的方法,其特征在于,所述接收针对数据库的表创建请求的步骤之前还包括:创建超级管理员账号白名单;在对所述用户执行授权或解除权限之前,判断所述用户是否存在于所述超级管理员账号白名单中;若所述用户存在于所述超级管理员账号白名单中,则对所述用户执行授权或解除权限;若所述用户不存在于所述超级管理员账号白名单中,则不...

【专利技术属性】
技术研发人员:刘光华
申请(专利权)人:乐视控股北京有限公司乐视网信息技术北京股份有限公司
类型:发明
国别省市:北京;11

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

1