账号模式切换与首个管理员
适用范围
以下流程面向独立安装、维护窗口内从 STATIC 切到 DATABASE。已有集群的认证指纹变更需要额外兼容迁移设计,不能逐节点照抄。先按备份保存数据库、完整配置与原密钥,停止新触发并停止应用。
情形 A:用户表为空
- 保留原
app.auth.username与app.auth.password-hash,设置app.auth.mode=DATABASE、app.auth.bootstrap-enabled=true。 - 启动并检查日志。仅空用户表可引导首个管理员;用原账号密码登录。
- 完成页面要求的强制改密,保存新密码,确认管理员角色与状态。
- 再次停止;设置
app.auth.bootstrap-enabled=false,保留其余受控值,再启动。 - 用全新会话和新密码登录,核验用户页、审计和一个业务读取操作。确认 bootstrap 已关闭,再恢复业务。
情形 B:已有启用管理员
切换时保持 bootstrap=false,使用数据库里现有管理员登录。STATIC 账号不一定等于数据库账号;在停机前确认可用身份和恢复方案。
情形 C:表非空却没有可用管理员
启动保护失败不是让你清表的提示。bootstrap 不会重置已有账号。保留错误与备份,核对账号状态、目标数据库及此前变更,通过经过验证的管理员恢复方案处理。
回退和反向切换
恢复原配置前确认当前仍是独立安装且旧 STATIC 凭据可用;停止后恢复匹配配置并验证登录。DATABASE → STATIC 会改变有效权限和账号来源,需重新评估所有使用者;不会删除数据库用户。数据库或外部写入已发生时,配置回退不撤销这些写入。AES 密钥保持原值,不为切换账号重新初始化。