Skip to content

用户与角色权限

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(默认)

  1. 登录接口 POST /api/login 返回 token
  2. 后续请求在 HTTP header 中带 token: <jwt>
  3. Token 与客户端 IP 绑定,换 IP 失效
  4. session_timeout 滑动过期(每次请求刷新)

统一门户 Token(可选)

适用场景:企业有统一身份认证系统,CKMAN 嵌入到该系统内使用。

  1. ckman.hjson 配置 server.public_key
  2. 调用方使用配对的私钥加密用户信息
  3. HTTP header 中带 userToken: <加密内容>
  4. CKMAN 用 public_key 解密,优先级高于 JWT

用户管理

用户管理 页面:

  • 新增用户:用户名 + 角色 + 启用状态 + 密码
  • 启停用户:临时禁用而非删除
  • 修改角色:admin 与 ordinary/guest 之间切换
  • 重置密码:admin 可重置任意用户密码
  • 修改自己的密码:任意用户都可以

内置用户

  • ckman:默认管理员,不能被删除或修改角色
  • ordinary:保留名,新建用户时不允许使用

密码规则

  • 至少 8 位
  • 包含大写、小写、数字、特殊字符中的至少 3 类
  • 旧密码与新密码不能相同(修改密码时)

用户名规则

  • 以字母开头
  • 3-32 位,仅允许字母、数字、下划线

基于 Apache 2.0 协议发布