三权分立
默认权限机制和系统管理员两节的描述基于的是集群创建之初的默认情况。从前面的介绍可以看出,默认情况下拥有SYSADMIN属性的系统管理员,具备系统最高权限。
在实际业务管理中,为了避免系统管理员拥有过度集中的权利带来高风险,可以设置三权分立,将系统管理员的权限分立给安全管理员和审计管理员。
三权分立后,系统管理员将不再具有CREATEROLE属性(安全管理员)和AUDITADMIN属性(审计管理员)能力。即不再拥有创建角色和用户的权限,并不再拥有查看和维护数据库审计日志的权限。关于CREATEROLE属性和AUDITADMIN属性的更多信息请参考CREATE ROLE。
三权分立后,系统管理员只会对自己作为所有者的对象有权限。
三权分立的设置办法请参考章节。
三权分立前的权限详情及三权分立后的权限变化,请分别参见表1和表2。
对象名称 |
系统管理员 |
安全管理员 |
审计管理员 |
普通用户 |
---|---|---|---|---|
表空间 |
对表空间有创建、修改、删除、访问、分配操作的权限。 |
不具有对表空间进行创建、修改、删除、分配的权限,访问需要被赋权。 |
||
表 |
对所有表有所有的权限。 |
仅对自己的表有所有的权限,对其他用户的表无权限。 |
||
索引 |
可以在所有的表上建立索引。 |
仅可以在自己的表上建立索引。 |
||
模式 |
对所有模式有所有的权限。 |
仅对自己的模式有所有的权限,对其他用户的模式无权限。 |
||
函数 |
对所有的函数有所有的权限。 |
仅对自己的函数有所有的权限,对其他用户放在public这个公共模式下的函数有调用的权限,对其他用户放在其他模式下的函数无权限。 |
||
自定义视图 |
对所有的视图有所有的权限。 |
仅对自己的视图有所有的权限,对其他用户的视图无权限。 |
||
系统表和系统视图 |
可以查看所有系统表和视图。 |
只可以查看部分系统表和视图。详细请参见系统表和系统视图。 |
对象名称 |
系统管理员 |
安全管理员 |
审计管理员 |
普通用户 |
---|---|---|---|---|
表空间 |
无变化 |
无变化。 |
||
表 |
权限缩小。 只对自己的表有所有权限,对其他用户放在属于各自模式下的表无权限。 |
无变化。 |
||
索引 |
权限缩小。 只可以在自己的表上建立索引。 |
无变化。 |
||
模式 |
权限缩小。 只对自己的模式有所有的权限,对其他用户的模式无权限。 |
无变化。 |
||
函数 |
权限缩小。 只对自己的函数有所有的权限,对其他用户放在属于各自模式下的函数无权限。 |
无变化。 |
||
自定义视图 |
权限缩小。 只对自己的视图及其他用户放在public模式下的视图有所有的权限,对其他用户放在属于各自模式下的视图无权限。 |
无变化。 |
||
系统表和系统视图 |
无变化。 |
无变化。 |
无变化。 |
无权查看任何系统表和视图。 |