用户和角色概述
在业务设计中,建议通过“角色”来管理权限,使用“用户”登录和访问数据库。
数据库权限
- 系统权限
系统权限是用户进行创建、删除、更改、查询对象和其他如登录、授权等操作的能力。
系统权限请参见《GaussDB 100 1.0.0 开发者指南(分布式)》中“语法参考 > SQL语法 > GRANT”章节“系统权限矩阵表”中的内容。
默认情况下,只有系统管理员(DBA)具备系统权限。DBA通过GRANT/REVOKE语句对其他用户的进行权限授予和撤销。被授予权限时携带ADMIN OPTION选项时,该用户也能对此权限进行授权操作。
从安全性考虑,系统权限应该分别赋予可信赖的用户。
- 对象权限
对象权限是指在表、视图、索引和函数等数据库对象上执行各种操作的权限,对象权限包括SELECT、UPDATE、INSERT、DELETE、INDEX、READ、REFERENCES、ALTER、EXECUTE等。
只有对象的所有者、系统管理员和被授予权限且拥有GRANT OPTION的用户才可以执行GRANT/REVOKE语句来分配或撤销对象权限。
系统权限请参见《GaussDB 100 1.0.0 开发者指南(分布式)》中“语法参考 > SQL语法 > GRANT”章节“系统权限矩阵表”中的内容。
数据库角色
角色(Role)是具有相同数据库权限的用户集合。GaussDB 100预置以下角色:
- DBA
系统管理员角色,拥有系统所有权限。建议用户限制赋予其他用户DBA角色。
- RESOURCE
创建基础对象的角色,拥有CREATE PROCEDURE、CREATE SEQUENCE、CREATE TABLE和CREATE TRIGGER共4种权限。
- CONNECT
连接角色,拥有CREATE SESSION权限。
- STATISTICS
具有创建、删除、查看WSR快照、生成WSR报告的权限。
权限规划建议
GaussDB 100用户可以按照权限分为三大类,为了系统安全请根据如下规划原则和业务实际情况,给数据库用户合理赋权。
- 系统管理员
DBA(Database Administrator),具有数据库的最高权限,并且具有所有的系统权限和对象权限。
请谨慎赋予用户DBA权限。
- 安全管理员
具有CREATE USER、DROP USER、ALTER USER权限的安全管理员。建议只设置一个安全管理员。
- 普通用户
普通用户默认仅有PUBLIC用户的权限,需要DBA通过GRANT语句赋权。
请根据用户使用的业务范围,建立具有不同权限的对象操作员,保证用户操作的最小权限。