权限管理 #
集群生态工具的权限 #
SphereEx-Boot 的权限 #
SphereEx-Boot 无权限控制。
SphereEx-Console 的权限 #
角色权限说明
角色 | 权限 | 作用域 | 操作 | 说明 |
---|---|---|---|---|
超级管理员 | 全部权限 | 系统管理员、用户、集群 | Console 用户管理 | 用户名称:admin,console内置,登录后可修改密码 |
系统管理员 | 全部权限 | 用户、集群 | Console 用户管理 | 由超级管理员创建 |
普通用户 | 指定集群的权限 | 集群 | Console 用户管理 | 由超级管理员或系统管理员创建 |
SphereEx-Console 访问组件的权限
组件/资源 | 说明 |
---|---|
主机 | ssh登录权限,安装目录有 |
数据库 | 在 SphereEx-Console 中使用监控中心监控 db 需要在 db 所在的主机安装监控插件,监控插件访问数据库需要额外分配用户。 创建用户参考: create user ‘[mysql_monitor_user_name]’@’[监控插件部署的IP]’ identified by ‘[password]’ [with max_user_connections N]; grant process,replication client,select on . to ‘[mysql_monitor_user_name]’@’[监控插件部署的IP]’; flush privileges; |
治理中心 | 无 |
监控中心 | 无 |
日志中心 | 无 |
功能列表
功能 | 说明 |
---|---|
新建用户 | 在 SphereEx-Console 平台中添加用户 |
修改密码 | 修改集群信息 |
权限管理 | 管理集群参数 |
删除 | 删除 SphereEx-Console 平台中的用户 |
- 新建用户
适用场景
创建 SphereEx-Console 管理用户。
注意事项
拥有超级管理员或系统管理员权限。
操作步骤
- 登录 SphereEx-Console。
- 点击 首页右上角头像->用户管理 进入用户列表。
- 点击右上角 添加用户,进入添加用户页面。
- 填写信息,具体参数见下表。
字段 | 数据来源 | 选填/必填 | 数据存储 | 长度限制 | 说明 |
---|---|---|---|---|---|
用户 | 用户输入 | 必填 | console mysql存储 | 32 | 用户列表校验唯一性 |
密码 | 用户输入 | 必填 | console mysql存储 | 6-16位 | 数字 字母 下划线, |
确认密码 | 用户输入 | 必填 | console mysql存储 | ||
角色 | 下拉选择 | 必填 | console mysql存储 | 系统管理员 | |
集群权限 | 下拉选择 | 选填 | console mysql存储 | 【角色】为【普通管理员】时出现 | |
可选集群 | 无权限的集群列表 | 选填 | console mysql存储 | ||
已选集群 | 已有权限的集群列表 | 选填 | console mysql存储 |
- 点击 确定,完成用户添加。
- 修改密码
适用场景
修改 SphereEx-Console 的用户密码。
注意事项
如下为不同角色的用户可修改密码的范围。
角色 | 可修改的范围 |
---|---|
超级管理员 | 自身、系统管理员、普通管理员 |
系统管理员 | 自身、普通管理员 |
普通管理员 | 自身 |
操作步骤
- 登录 SphereEx-Console。
- 点击首页右上角头像->用户管理 进入用户列表。
- 点击操作列 修改密码 按钮,进入修改密码页面。
- 填写信息,具体参数见下表。
字段 | 数据来源 | 选填/必填 | 数据存储 | 长度限制 | 元件 | 说明 |
---|---|---|---|---|---|---|
用户 | 自动填充 | 必填 | console mysql存储 | 32 | 文本框 | 不可编辑 |
新密码 | 用户输入 | 必填 | console mysql存储 | 6-16位 | 文本框 | 数字 字母 下划线, |
确认密码 | 用户输入 | 必填 | console mysql存储 | 文本框 | 与新密码一致 |
- 点击 确定,完成用户添加。
- 权限管理
适用场景
修改 SphereEx-Console 的用户密码
注意事项
管理普通用户的集群权限,角色不能修改,用户权限被修改后,需要重新登录才能刷新权限。
操作步骤
- 登录 SphereEx-Console。
- 点击 首页右上角头像->用户管理 进入用户列表。
- 点击操作列 权限管理 按钮,进入权限管理页面。
- 填写信息,具体参数见下表。
字段 | 数据来源 | 选填/必填 | 长度限制 | 说明 |
---|---|---|---|---|
用户 | 用户输入 | 必填 | 32 | 用户列表校验唯一性 |
集群权限 | 下拉选择 | 选填 | 【角色】为【普通管理员】时出现 | |
可选集群 | 无权限的集群列表 | 选填 | ||
已选集群 | 已有权限的集群列表 | 选填 |
- 点击 确定,完成权限调整。
- 删除
适用场景
删除系统管理员或普通管理员。
注意事项
删除用户,如下为不同角色的用户可删除用户的范围:
角色 | 可删除的用户范围 |
---|---|
超级管理员 | 系统管理员、普通管理员 |
系统管理员 | 普通管理员 |
操作步骤
- 登录 SphereEx-Console。
- 点击 首页右上角头像->用户管理 进入用户列表。
- 点击操作列 删除 按钮。
- 提示框中点击 确定,完成用户的删除。
集群组件的权限 #
访问组件的权限:
组件名称 | 组件本身的权限 | 集群访问使用组件的权限 | SphereEx-Console访问组件的权限 | 监控插件访问组件 |
---|---|---|---|---|
主机 | 无 | 无 | ssh登录权限,安装目有读写权限 | ssh登录权限,安装目有读写权限 |
数据库 | 无 | 依据用户使用底层db的权限 | 依据用户使用底层db的权限 | 创建用户参考: create user ‘[mysql_monitor_user_name]’@’[监控插件部署的IP]’ identified by ‘[password]’ [with max_user_connections N]; |
治理中心 | 无 | 无 | 无 | 无 |
监控中心 | 无 | 无 | 无 | 无 |
日志中心 | 无 | 无 | 无 | 无 |
集群权限 #
集群权限管理,即计算节点的权限管理。
角色 | 职能 | 作用域 | 操作 | 说明 |
---|---|---|---|---|
超级用户 (root) | 最高权限 | 集群 | DistSQL | 必须配置,不可删除,可修改口令。修改后写入治理中心,不回写本地文件 - 第一次使用本地文件启动,明文有风险 |
普通用户/角色 | 对象级权限 | 逻辑库 | DistSQL | 在逻辑库中限制对象的增删改查权限 |
权限分级 #
DBPlusEngine-Proxy 权限的分级与标准数据库权限类似,同样拥有全局权限、库级对象权限、表级对象权限、列级对象权限。
DBPlusEngine-Proxy 权限授权项由 操作 + 操作对象 组成,其组合方式如下。
授权项 | SELECT | INSERT | UPDATE | DELETE | CREATE | DROP | ALTER | INDEX | CREATE_USER | SUPER |
---|---|---|---|---|---|---|---|---|---|---|
全局权限 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
对象权限/库 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | / | / |
对象权限/表 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | / | / |
对象权限/列 | ✔️ | ✔️ | ✔️ | / | / | / | / | / | / | / |
授权项 | CREATE | ALTER | DROP | SHOW |
---|---|---|---|---|
STORAGE UNIT | ✔️ | ✔️ | ✔️ | ✔️ |
SHARDING | ✔️ | ✔️ | ✔️ | ✔️ |
READWRITE_SPLITTING | ✔️ | ✔️ | ✔️ | ✔️ |
ENCRYPT | ✔️ | ✔️ | ✔️ | ✔️ |
DB_DISCOVERY | ✔️ | ✔️ | ✔️ | ✔️ |
SHADOW | ✔️ | ✔️ | ✔️ | ✔️ |
SINGLE_TABLE | ✔️ | ✔️ | ✔️ | ✔️ |
- 全局权限
全局权限,是指用户获得的授权不区分目标对象,用户可对任意的逻辑库、逻辑表执行对应操作。
例如,以下指令将全局的 INSERT、SELECT、UPDATE 和 DELETE 权限赋予用户 ‘sharding’@’%’,则该用户能够对任何逻辑库中的表执行 DML 操作。
-- 以下两个语句等效
GRANT DIST INSERT,SELECT,UPDATE,DELETE TO 'sharding'@'%';
GRANT DIST INSERT,SELECT,UPDATE,DELETE TO sharding;
例如,以下指令将全局的 SHOW SHARDING 权限赋予用户 ‘sharding’@’%’,则该用户能够对任何逻辑库中的分片规则执行 SHOW 操作。
GRANT DIST SHOW SHARDING TO 'sharding'@'%';
另外,因为 DistSQL 授权项较多,对于一次授予多个授权项时,可以使用语法类型作为授权项。例如,以下指令将所有操作对象全局的 SHOW 权限赋予用户 ‘sharding’@’%’,则该用户能够对任何逻辑库中的任何操作对象执行 SHOW 操作。
GRANT DIST RQL SHARDING TO 'sharding'@'%';
需要注意的是,全局权限包含两项特殊权限:CREATE_USER 和 SUPER。
其中,获得 CREATE_USER 授权的用户,可执行以下操作:
操作 | 说明 |
---|---|
CREATE USER | 创建用户 |
ALTER USER | 修改用户 |
DROP USER | 删除用户 |
CREATE ROLE | 创建角色 |
DROP ROLE | 删除角色 |
REVOKE ALL PRIVILEGES | 撤销用户或角色的全部授权 |
SUPER 代表的是数据库系统的最高权限,默认情况下,ShardingSphere 启动前配置的初始用户拥有 SUPER 授权。
- 对象权限
对象权限,指授予的权限受作用范围限制,用户不可在授权范围之外执行相应操作。
对象权限的作用范围可以是所有逻辑库,也可以指定单个或多个逻辑库及库中的表和列。
例如,以下指令将逻辑库 sharding_db 中 t_order 表的所有权限授予用户 ‘sharding’@’%’,此后该用户可以对 sharding_db.t_order 表执行操作。但若无额外授权,该用户不能操作 sharding_db 中的其它表。
GRANT DIST ALL ON sharding_db.t_order TO sharding;
例如,以下指令将逻辑库 sharding_db 中分片规则 t_order 的创建和修改权限授予用户 ‘sharding’@’%’,此后该用户可以对 sharding_db.t_order 规则执行创建和修改操作。但若无额外授权,该用户不能操作 sharding_db 中的其它规则。
GRANT DIST CREATE SHARDING, ALTER SHARDING ON sharding_db.t_order TO 'sharding'@'%';
DistSQL 清单 #
参考 DistSQL 用户管理