一种基于cockroachDB数据库的权限管理方法及工具技术

技术编号:27031037 阅读:15 留言:0更新日期:2021-01-12 11:14
本发明专利技术公开一种基于cockroachDB数据库的权限管理方法及工具,涉及数据库技术领域,其实现包括:根据cockroachDB数据库的权限使用场景,将权限划分为数据库、模式、对象三个层级;获取cockroachDB数据库权限的结构信息,并分别存放于三个层级的权限下,其中,权限结构信息包括名称、类型、作用三部分,名称部分包括Grantor、PrivilegeType、GrantAble,Grantor和PrivilegeType的类型为字符串,Grantor是权限的赋予者,PrivilegeType标记权限类型,GrantAble的类型为布尔值,其记录了权限的赋予者,用于选择是否可以将该权限继续赋予他人;基于不同层级的权限结构信息,通过逐级赋权和级联撤销,解决权限成环问题。本发明专利技术提高了数据库的安全性能,大大扩展了数据库的应用场景,解决了现有cockroachDB数据库的后台管理中没有权限管理功能的问题。

【技术实现步骤摘要】
一种基于cockroachDB数据库的权限管理方法及工具
本专利技术涉及数据库
,具体的说是一种基于cockroachDB数据库的权限管理方法及工具。
技术介绍
目前主流数据库操作系统中,如cockroachDB数据库的后台管理中没有权限管理功能,所有的用户都是通过同一个账户名和密码登录数据库的。即,只要有了数据库的账户名和密码,即可以登录数据库不受限制的进行数据插入、删除等操作,会给数据库的数据安全带来极大的风险。
技术实现思路
本专利技术针对目前技术发展的需求和不足之处,提供一种基于cockroachDB数据库的权限管理方法及工具。首先,本专利技术的一种基于cockroachDB数据库的权限管理方法,解决上述技术问题采用的技术方案如下:一种基于cockroachDB数据库的权限管理方法,包括如下步骤:根据cockroachDB数据库的权限使用场景,将权限划分为数据库、模式、对象三个层级;获取cockroachDB数据库权限的结构信息,并分别存放于三个层级的权限下;基于不同层级的权限结构信息,通过逐级赋权和级联撤销,解决权限成环问题。进一步的,所涉及cockroachDB数据库权限的结构信息包括名称、类型、作用三部分,其中:名称部分包括Grantor、PrivilegeType、GrantAble三种,Grantor的类型为字符串,作为权限的赋予者,PrivilegeType的类型为字符串,用于标记权限类型,GrantAble的类型为布尔值,其记录了权限的赋予者,用于选择是否可以将该权限继续赋予他人,为解决权限成环问题提供辅助。更进一步的,针对数据库层级的权限,支持CREATE、DROP、USAGE三种权限类型,其中,CREATE权限类型可执行创建数据库的操作,DROP权限类型可执行删除数据库的操作,USAGE权限类型可执行访问数据库的操作。更进一步的,针对模式层级的权限,支持CREATE、DROP、USAGE、ALTER四种权限类型,其中,CREATE权限类型可执行创建模式的操作,DROP权限类型可执行删除模式的操作,USAGE权限类型可执行访问模式的操作,ALTER权限用于更改模式。更进一步的,所涉及模式层级的权限判断过程为:(1)开始;(2a.1)执行CREATE权限,新建模式;(2a.2)判断用户是否拥有当前数据库的CREATE权限,若是,则赋予用户对于新建模式的CREATE、DROP、USAGE三种权限类型,成功后结束,若否,则直接结束;(2b.1)执行DROP权限,删除模式;(2b.2)判断用户是否拥有该模式的DROP权限,若是,则遍历当前模式下的表格,执行步骤(2b.3),若否,则直接结束;(2b.3)进一步判断用户是否有每个表格的DROP权限,若是,则成功,随后结束,若否,则直接结束;(2c.1)执行USAGE权限,访问模式;(2c.2)判断用户是否拥有当前数据库的CREATE权限,若是,则执行步骤(2c.3),若否,则直接结束;(2c.3)进一步判断用户是否拥有该模式的DROP权限,若是,则遍历当前模式下的表格,执行步骤(2c.4),(2c.4)进一步判断用户是否有每个表格的DROP权限,若是,则赋予用户对于新建模式的CREATE、DROP、USAGE三种权限类型,成功后结束,若否,则直接结束。更进一步的,针对对象层级的权限,支持CREATE、DROP、ALTER三种权限类型,其中,执行CREATE权限类型时,用户首先需要判断对象的依附关系是数据库还是模式,随后,用户拥有所依附数据库/模式的CREATE权限,DROP权限类型可执行删除该对象的操作,ALTER权限类型支持将原对象迁移至不同数据库下的操作;针对对象层级的权限,支持INSERT、DELETE、UPDATE、SELECT、REFERENCES、DROP六种权限类型,将对象层级的权限划分为关系、索引、视图、序列四种,针对对象层级的关系权限,支持INSERT、DELETE、UPDATE、SELECT、REFERENCES、DROP六种权限类型,其中,INSERT权限类型可执行增加数据的操作,DELETE权限类型可执行删除数据的操作,UPDATE权限类型可执行更新数据的操作,SELECT权限类型可执行查询数据的操作,REFERENCES权限类型可执行更改关系属性的操作,DROP权限类型可执行删除对应的操作;针对对象层级的索引权限,支持REFERENCES权限类型,REFERENCES权限类型可执行创建、修改、删除索引的操作;针对对象层级的视图权限,支持SELECT、DROP两种权限类型,其中,SELECT权限类型可执行查询视图的操作,DROP权限类型可执行删除视图的操作;针对对象层级的序列权限,支持SELECT、DROP、UPDATE三种权限类型,其中,SELECT权限类型可执行查询序列的操作,DROP权限类型可执行删除序列的操作,UPDATE权限类型可执行更新序列的操作。其次,本专利技术的一种基于cockroachDB数据库的权限管理工具,解决上述技术问题采用的技术方案如下:一种基于cockroachDB数据库的权限管理工具,其结构包括:分级模块,用于根据cockroachDB数据库的权限使用场景,将权限划分为数据库、模式、对象三个层级;获取存储模块,用于获取cockroachDB数据库权限的结构信息,并分别存放于数据库、模式、对象三个层级的权限下;处理模块,用于根据不同层级的权限结构信息,通过逐级赋权和级联撤销,解决权限成环问题。进一步的,cockroachDB数据库权限的结构信息包括名称、类型、作用三部分,其中:名称部分包括Grantor、PrivilegeType、GrantAble三种,Grantor的类型为字符串,作为权限的赋予者,PrivilegeType的类型为字符串,用于标记权限类型,GrantAble的类型为布尔值,其记录了权限的赋予者,用于选择是否可以将该权限继续赋予他人,为解决权限成环问题提供辅助。更进一步的,针对数据库层级的权限,支持CREATE、DROP、USAGE三种权限类型,其中,CREATE权限类型可执行创建数据库的操作,DROP权限类型可执行删除数据库的操作,USAGE权限类型可执行访问数据库的操作;针对模式层级的权限,支持CREATE、DROP、USAGE、ALTER四种权限类型,其中,CREATE权限类型可执行创建模式的操作,DROP权限类型可执行删除模式的操作,USAGE权限类型可执行访问模式的操作,ALTER权限用于更改模式。更进一步的,针对对象层级的权限,支持CREATE、DROP、ALTER三种权限类型,其中,本文档来自技高网...

【技术保护点】
1.一种基于cockroachDB数据库的权限管理方法,其特征在于,包括如下步骤:/n根据cockroachDB数据库的权限使用场景,将权限划分为数据库、模式、对象三个层级;/n获取cockroachDB数据库权限的结构信息,并分别存放于三个层级的权限下;/n基于不同层级的权限结构信息,通过逐级赋权和级联撤销,解决权限成环问题。/n

【技术特征摘要】
1.一种基于cockroachDB数据库的权限管理方法,其特征在于,包括如下步骤:
根据cockroachDB数据库的权限使用场景,将权限划分为数据库、模式、对象三个层级;
获取cockroachDB数据库权限的结构信息,并分别存放于三个层级的权限下;
基于不同层级的权限结构信息,通过逐级赋权和级联撤销,解决权限成环问题。


2.根据权利要求1所述的一种基于cockroachDB数据库的权限管理方法,其特征在于,所述cockroachDB数据库权限的结构信息包括名称、类型、作用三部分,其中:
名称部分包括Grantor、PrivilegeType、GrantAble三种,
Grantor的类型为字符串,作为权限的赋予者,
PrivilegeType的类型为字符串,用于标记权限类型,
GrantAble的类型为布尔值,其记录了权限的赋予者,用于选择是否可以将该权限继续赋予他人,为解决权限成环问题提供辅助。


3.根据权利要求2所述的一种基于cockroachDB数据库的权限管理方法,其特征在于,针对数据库层级的权限,支持CREATE、DROP、USAGE三种权限类型,其中,CREATE权限类型可执行创建数据库的操作,DROP权限类型可执行删除数据库的操作,USAGE权限类型可执行访问数据库的操作。


4.根据权利要求3所述的一种基于cockroachDB数据库的权限管理方法,其特征在于,针对模式层级的权限,支持CREATE、DROP、USAGE、ALTER四种权限类型,其中,CREATE权限类型可执行创建模式的操作,DROP权限类型可执行删除模式的操作,USAGE权限类型可执行访问模式的操作,ALTER权限用于更改模式。


5.根据权利要求4所述的一种基于cockroachDB数据库的权限管理方法,其特征在于,所述模式层级的权限判断过程为:
(1)开始;
(2a.1)执行CREATE权限,新建模式;
(2a.2)判断用户是否拥有当前数据库的CREATE权限,
若是,则赋予用户对于新建模式的CREATE、DROP、USAGE三种权限类型,成功后结束,若否,则直接结束;
(2b.1)执行DROP权限,删除模式;
(2b.2)判断用户是否拥有该模式的DROP权限,
若是,则遍历当前模式下的表格,执行步骤(2b.3),若否,则直接结束;
(2b.3)进一步判断用户是否有每个表格的DROP权限,
若是,则成功,随后结束,
若否,则直接结束;
(2c.1)执行USAGE权限,访问模式;
(2c.2)判断用户是否拥有当前数据库的CREATE权限,
若是,则执行步骤(2c.3),若否,则直接结束;
(2c.3)进一步判断用户是否拥有该模式的DROP权限,
若是,则遍历当前模式下的表格,执行步骤(2c.4),
(2c.4)进一步判断用户是否有每个表格的DROP权限,
若是,则赋予用户对于新建模式的CREATE、DROP、USAGE三种权限类型,成功后结束,
若否,则直接结束。


6.根据权利要求4所述的一种基于cockroachDB数据库的权限管理方法,其特征在于,针对对象层级的权限,支持CREATE、DROP、ALTER三种权限类型,其中,
执行CREATE权限类型时,用户首先需要判断对象的依附关系是数据库还是模式,随后,用户拥有所依附数据库/模式的CREATE权限,DROP权限类型可执行删除该对象的操作,ALTER权限类型支持将原对象迁移至不同数据库下的操作;
针对对象层级的权限,支持INSERT、DELETE、UPDATE、SELECT、REFERENCES、DROP六种权限类型,
将对象层级的权限划分为关系、索引、视图、序列四种,
针对对象层级的关系权限,支持INSERT、DELETE、UPDATE、SELECT、REFERENCES、DROP六种权限类型,其中,INSERT权限类型可执行增加数据的操作,DELETE权限类型可执行删除数据的操作,UPDATE权限类型可执行更新数据的操作,SELECT权限类型可执行查询数...

【专利技术属性】
技术研发人员:金越冯友旭高子奇马伟科李欣泽陈磊
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:山东;37

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

1