Bytebase 3.23.1(10 月 8 日)里最有价值的一条改动,是一个默认值的安全修正。
改动内容
当你授予项目角色 DDL/DML 权限时(SQL Editor User、Project Owner 或自定义角色),原来的 Environments 字段现在变成了开关 Direct DDL/DML execution,且默认关闭。
为什么这个改动重要
旧版里那个字段读起来像一个范围选择器,所以负责人习惯性会把所有环境都勾上——而每勾一个环境,就等于允许该成员在那个环境的 SQL Editor 里无需审批直接跑 DDL/DML。
这是一个典型的「UI 语义含糊导致权限放大」问题。改成开关并默认关闭之后,想放开必须显式操作。
其他改动
- 任务运行日志:每行显示完整语句,可展开、可复制,失败的语句能看到实际执行内容。锁超时重试后通过的运行会显示为 passed,早前尝试折叠进 Previous attempts 行。
- 时间显示:issue 和 plan 列表、评论等活动流 30 天内显示相对时间,之后显示日期,与 GitHub 一致。
- Plan review:可以多开未解决评论线程、在 Review Activity 和语句行之间跳转、超大语句上的评论刷新后不再消失。点击 Edit 保持位置。
升级注意
- 就地降级不支持,升级前先备份元数据库。
- 不要在同一数据目录上运行多个容器。
- Terraform 用户:先升 Bytebase 服务端,再应用新的 Terraform 配置。
可以借鉴的设计思路
把「危险能力」做成显式开关而不是范围选择,是权限设计里很有效的一招。默认关闭 + 显式开启,能显著降低误配概率。
如果你在自建内部平台,这个模式值得照搬:凡是具备破坏性的操作入口,都不要用多选范围来表达,用开关,且默认关。
实践建议
升级后第一件事:检查现有项目角色的 DDL/DML 配置,看迁移后哪些角色的实际权限被收紧了,提前和业务方沟通,避免突然没法执行导致阻塞。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。