用户与角色权限
CKMAN 基于角色的访问控制(RBAC),内置三种角色。

三种角色
| 角色 | 内部名 | 权限范围 |
|---|---|---|
| 管理员 | admin | 全部操作 |
| 普通用户 | ordinary | 表/分区/备份/DML 等运维操作,包含游客权限;不可改集群拓扑、不能管理用户 |
| 游客 | guest | 只读:集群信息、表结构、SQL 查询、监控指标、任务/备份列表 |
行内说明
用户管理页 Role 列右侧、以及新增/编辑用户对话框中的"角色"标签后,都有一个 ? 图标,hover 即可看到对应角色的简要说明。
详细权限矩阵
管理员 only(普通用户和游客都不能做)
- 集群部署 / 销毁 / 升级 / 启停
- 节点增删与启停
- 节点 override 配置 (PUT/DELETE)
- 数据均衡(rebalance 执行 / plan 预演)
- 用户管理(新建 / 修改 / 删除 / 重置密码)
- 安装包上传 / 删除
- 备份策略 CRUD(创建/修改/删除策略)
- 任务停止 / 删除
- 集群配置变更(ClusterSetting)
普通用户(包含游客全部权限 + 以下)
- 表创建 / 修改 / 删除(含分布式表)
- TTL、ORDER BY、物化视图、只读恢复
- 分区操作(删除、迁移、归档)
- 数据 purge
- 备份执行 / 恢复(基于已有策略)
- DML
- kill 会话
- 查询历史清理
游客(最小集)
- 查看集群、节点、配置、override
- 查询执行与导出、查询历史
- 表结构、分区、metric、merges、sessions、DDL queue
- 监控指标、任务列表、备份列表
- ZK 状态、版本信息、ping 节点
- 修改自己的密码
认证方式
JWT Token(默认)
- 登录接口
POST /api/login返回 token - 后续请求在 HTTP header 中带
token: <jwt> - Token 与客户端 IP 绑定,换 IP 失效
session_timeout滑动过期(每次请求刷新)
统一门户 Token(可选)
适用场景:企业有统一身份认证系统,CKMAN 嵌入到该系统内使用。
- 在
ckman.hjson配置server.public_key - 调用方使用配对的私钥加密用户信息
- HTTP header 中带
userToken: <加密内容> - CKMAN 用 public_key 解密,优先级高于 JWT
用户管理
用户管理 页面:
- 新增用户:用户名 + 角色 + 启用状态 + 密码
- 启停用户:临时禁用而非删除
- 修改角色:admin 与 ordinary/guest 之间切换
- 重置密码:admin 可重置任意用户密码
- 修改自己的密码:任意用户都可以
内置用户
ckman:默认管理员,不能被删除或修改角色ordinary:保留名,新建用户时不允许使用
密码规则
- 至少 8 位
- 包含大写、小写、数字、特殊字符中的至少 3 类
- 旧密码与新密码不能相同(修改密码时)
用户名规则
- 以字母开头
- 3-32 位,仅允许字母、数字、下划线