Bytebase 3.23.1 发布,最值得注意的一个改动是权限模型上的:直接执行 DDL/DML 的授权方式变了。
改了什么
以前给项目角色授予 DDL/DML 权限时(SQL Editor User、Project Owner 或自定义角色),Environments 字段看起来像一个作用范围,于是管理员经常把所有环境都勾上。
但每勾一个环境,那个成员就能在对应环境的 SQL 编辑器里无需审批直接执行 DDL/DML。
现在这个字段变成了一个开关,叫 Direct DDL/DML execution,默认关闭。打开之后才需要选择允许的环境。
工作空间级别授予的角色在所有环境都允许,成员表单里也明确写了这一点。
为什么这个改动重要
这是一个典型的「界面语义误导导致权限放大」问题。管理员以为在选范围,实际在授予绕过审批的能力。
改成默认关闭的开关之后,安全是默认状态,放开需要显式操作。这个方向是对的。
其他改进
任务运行日志:每一行现在显示完整语句,可以展开、复制,也能看到失败行实际执行的 SQL。因锁超时重试后通过的运行会显示为通过,先前的尝试折叠成一行。
日期时间显示:工单和计划列表、评论等活动流在 30 天内显示相对时间,超过后显示具体日期,跟 GitHub 一致。数据库变更日志、修订和任务运行历史始终显示日期时间。
计划评审:可以保持多个评论线程同时打开,能看到自己在未解决线程中的位置,编辑时也能从评审活动跳转到语句行,大语句上的评论在刷新后不再消失。
升级注意
升级前先备份元数据库,原地降级不支持。
不要在同一数据目录上运行多个容器。
Terraform 用户:先升级 Bytebase 服务端,再应用新的 Terraform 配置。
给使用者的建议
借这次变更做一次权限审计:把当前所有带 DDL/DML 权限的角色列出来,逐个确认是否真的需要绕过审批。
数据库变更工具的权限是最后一道防线。绕过审批的口子一旦开得比预期大,前面的评审流程就形同虚设。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。