暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

opengauss之三权分立详解

原创 霸王龙的日常 2022-09-30
2154

三权分立

默认权限机制和管理员两节的描述基于的是数据库创建之初的默认情况。从前面的介绍可以看出,默认情况下拥有SYSADMIN属性的系统管理员,具备系统最高权限。

在实际业务管理中,为了避免系统管理员拥有过度集中的权利带来高风险,可以设置三权分立。将系统管理员的部分权限分立给安全管理员和审计管理员,形成系统管理员、安全管理员和审计管理员三权分立。

三权分立后,系统管理员将不再具有CREATEROLE属性(安全管理员)和AUDITADMIN属性(审计管理员)能力。即不再拥有创建角色和用户的权限,并不再拥有查看和维护数据库审计日志的权限。关于CREATEROLE属性和AUDITADMIN属性的更多信息请参考CREATE ROLE。

三权分立后,系统管理员只会对自己作为所有者的对象有权限。

初始用户的权限不受三权分立设置影响。因此建议仅将此初始用户作为DBA管理用途,而非业务应用。

三权分立的设置办法为:将参数enableSeparationOfDuty设置为on。

三权分立前的权限详情及三权分立后的权限变化,请分别参见表1和表2。


表1 默认的用户权限

对象名称 初始用户(id为10) 系统管理员 安全管理员 审计管理员 普通用户
表空间 具有除私有用户表对象访问权限外,所有的权限。 对表空间有创建、修改、删除、访问、分配操作的权限。 不具有对表空间进行创建、修改、删除、分配的权限,访问需要被赋权。
对所有表有所有的权限。 仅对自己的表有所有的权限,对其他用户的表无权限。
索引 可以在所有的表上建立索引。 仅可以在自己的表上建立索引。
模式 对除dbe_perf以外的所有模式有所有的权限。 仅对自己的模式有所有的权限,对其他用户的模式无权限。
函数 对除dbe_perf模式下的函数以外的所有的函数有所有的权限。 仅对自己的函数有所有的权限,对其他用户放在public这个公共模式下的函数有调用的权限,对其他用户放在其他模式下的函数无权限。
自定义视图 对除dbe_perf模式下的视图以外的所有的视图有所有的权限。 仅对自己的视图有所有的权限,对其他用户的视图无权限。
系统表和系统视图 可以查看所有系统表和视图。 只可以查看部分系统表和视图。


表2 三权分立较非三权分立权限变化说明

对象名称 初始用户(id为10) 系统管理员 安全管理员 审计管理员 普通用户
表空间 无变化。 无变化。 无变化。
依然具有除私有用户表对象访问权限外,所有的权限。 权限缩小。 无变化。
只对自己的表及其他用户放在public模式下的表有所有的权限,对其他用户放在属于各自模式下的表无权限。
索引 权限缩小。 无变化。
只可以在自己的表及其他用户放在public模式下的表上建立索引。
模式 权限缩小。 无变化。
只对自己的模式有所有的权限,对其他用户的模式无权限。
函数 权限缩小。 无变化。
只对自己的函数及其他用户放在public模式下的函数有所有的权限,对其他用户放在属于各自模式下的函数无权限。
自定义视图 权限缩小。 无变化。
只对自己的视图及其他用户放在public模式下的视图有所有的权限,对其他用户放在属于各自模式下的视图无权限。
系统表和系统视图 无变化。 无变化。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论