GBase 8c集中式场景下的三权分立介绍及配置讲解

📅 2026/7/24 12:55:43
GBase 8c集中式场景下的三权分立介绍及配置讲解
GBase 8c数据库集中式场景下默认情况下拥有 SYSADMIN 属性的系统管理员具备系统最高权限。 在实际业务管理中为了避免系统管理员拥有过度集中的权利带来高风险可以设置三权分立。将系统管理员的部分权限分立给安全管理员和审计管理员形成系统管理员、安全 管理员和审计管理员三权分立。三权分立后 系统管理员将不再具有 CREATEROLE 属性 安全管理员 和 AUDITADMIN 属性审计管理员能力。即不再拥有创建角色和用户的权限并不再拥有查看和维护数据库审计日志的权限。三权分立后系统管理员只会对自己作为所有者的对象有权限。初始用户的权限不受三权分立设置影响。因此建议仅将此初始用户作为 DBA 管理用途而非业务应用。三权分立的设置办法为将参数 enableSeparationOfDuty 设置为 on。三权分立前的权限详情及三权分立后的权限变化如下表。对象名称初始用户id为10系统管理员监控管理员运维管理员安全策略管理员安全管理员审计管理员普通用户表空间具有除私有用户表对象访问权限外所有的权限。对表空间有创建、修改、删除、访问、分配操作的权限。不具有对表空间进行创建、修改、删除、分配的权限访问需要被赋权。表对所有表有所有的权限。仅对自己的表有所有的权限对其他用户的表无权限。索引可以在所有的表上建立索引。仅可以在自己的表上建立索引。模式对除dbe_perf以外的所有模式有所有的权限。仅对dbe_perf模式和自己的模式有所有的权限对其他用户的模式无权限。仅对自己的模式有所有的权限对其他用户的模式无权限。函数对除dbe_perf模式下的函数以外的所有的函数有所有的权限。仅对dbe_perf模式下的和自己的函数有所有的权限对其他用户放在public这个公共模式下的函数有调用的权限对其他用户放在其他模式下的函数无权限。仅对自己的函数有所有的权限对其他用户放在public这个公共模式下的函数有调用的权限对其他用户放在其他模式下的函数无权限。自定义视图对除dbe_perf模式下的视图以外的所有的视图有所有的权限。仅对dbe_perf模式下的和自己的视图有所有的权限对其他用户的视图无权限。仅对自己的视图有所有的权限对其他用户的视图无权限。系统表和系统视图可以查看所有系统表和视图。只可以查看部分系统表和视图。三权分立较非三权分立权限变化说明对象名称初始用户id为10系统管理员监控管理员运维管理员安全策略管理员安全管理员审计管理员普通用户表空间无变化。依然具有除私有用户表对象访问权限外所有的权限。无变化无变化。表权限缩小。只对自己的表及其他用户放在public模式下的表有所有的权限对其他用户放在属于各自模式下的表无权限。无变化。索引权限缩小。只可以在自己的表及其他用户放在public模式下的表上建立索引。无变化。模式权限缩小。只对自己的模式有所有的权限对其他用户的模式无权限。无变化无变化。函数权限缩小。只对自己的函数及其他用户放在public模式下的函数有所有的权限对其他用户放在属于各自模式下的函数无权限。无变化无变化。自定义视图权限缩小。只对自己的视图及其他用户放在public模式下的视图有所有的权限对其他用户放在属于各自模式下的视图无权限。无变化无变化。系统表和系统视图无变化。无变化。三权分立配置方法-- 初始用户的权限不受三权分立设置影响。 -- 建议数据库创建安全管理员security和审计管理员auditor并分配相应权限实现用户的权限分离。 gs_guc reload -N all -I all -c enableSeparationOfDutyon gs_om -t restart -- 创建安全管理员 gsql -p 15400 -d db_name -c create role secrole with login CREATEROLE password **********; gsql -p 15400 -d db_name -c create role audrole with login AUDITADMIN password **********; ----注意**********为脱敏显示的密码在实际场景中设置的密码应符合GBase 8c数