openGauss数据库权限管理模型

由于数据库中存储着大量重要数据和各类敏感信息,并且为持有不同权限的合法用户提供数据共享服务,这就要求数据库具备完善的安全防御机制来抵抗来自内部和外部的恶意攻击,以保障数据不丢失、隐私不泄露以及数据不被篡改等。当前openGauss数据库已经构建了纵深防御的安全体系,保障数据库在应用中的安全。完善的权限管理机制可以有效阻断恶意用户的越权操作。本文将重点介绍openGauss数据库的权限管理机制。

基础权限控制模型

常见的权限控制模型有三种:基于策略的访问控制模型,基于角色的访问控制模型以及基于会话和角色的访问控制模型。openGauss数据库采用基于角色的权限访问控制模型,利用角色来组织和管理权限,能够大大简化对权限的授权管理。借助角色机制,当给一组权限相同的用户授权时,只需将权限授予角色,再将角色授予这组用户即可,不需要对用户逐一授权。而且利用角色权限分离可以很好地控制不同用户拥有不同的权限,相互制约达到平衡。

伴随着数据库的发展以及所面向业务场景的扩展,对数据库权限分离以及权限管理的细粒度划化提出了更高的要求,为了满足多样化用户的业务安全要求,openGauss数据库针对权限模型进行了更细粒度的权限划分,使得用户可以更灵活地依据实际业务进行用户权限分配和管理。

openGauss数据库权限层级

在openGauss数据库系统的对象布局逻辑结构中,每个实例下允许创建多个数据库(database),每个数据库下允许创建多个模式(schema),每个模式下允许创建多个对象,比如表、函数、视图、索引等,每个表又可以依据行和列两个维度进行衡量,从而形成如下的逻辑层级:

依据上述逻辑分布构建如下图所示的openGauss数据库的权限体系,每一层都有自己的权限控制。

比如用户想要成功查看数据表某一行的数据,那么他需要具备能够登录数据库(LOGIN)这一系统权限,表所在数据库的连接权限(CONNECT),表所在模式的使用权限(USAGE)和数据表本身的查看权限(SELECT),同时还要满足对这一行数据的行级访问控制条件(row level security)。

openGauss数据库权限分类

在openGauss数据库中,用户和角色是基本相同的概念,唯一的区别是在创建角色的时默认没有LOGIN权限,也不会自动创建同名的模式。也就是说一个拥有LOGIN权限的角色可以被认为是一个用户。在以下的介绍中我们统一通过用户(USER)来连接、访问数据库以及执行SQL,通过角色(ROLE)来组织和管理权限。我们通过将不同的权限打包成角色授予用户,使得用户获得该角色中的所有权限。同时通过改变角色的权限,该角色所包含的所有成员的权限也会被自动修改。

在openGauss数据库系统中权限分为两种:系统权限和对象权限。

  • 系统权限是指系统规定用户使用数据库的权限,比如登录数据库、创建数据库、创建用户/角色、创建安全策略等。

  • 对象权限是指在数据库、模式、表、视图、函数等数据库对象上执行特殊动作的权限,不同的对象类型与不同的权限相关联,比如数据库的连接权限,表的查看、更新、插入等权限,函数的执行权限等。基于特定的对象来描述对象权限才是有意义的。

3.1 系统权限

系统权限又称用户属性,具有特定属性的用户会获得指定属性所对应的权限。系统权限无法通过角色(ROLE)被继承。在创建用户或角色时可以通过SQL语句CREATE ROLE/USER指定用户具有某些属性,或者通过ALTER ROLE/USER的方式给用户/角色添加用户属性或取消用户属性。

openGauss数据库支持如下系统权限的授予和回收:

系统权限

权限范围

SYSADMIN

允许用户创建数据库,创建表空间,

允许用户创建用户/角色

允许用户查看、删除审计日志

允许用户查看其它用户的数据

MONADMIN

允许用户对系统模式dbe_perf及该模式

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值