数据库密码一用两三年、从不更换——这是 76% 企业的真实写照,也是凭据管理最隐蔽的雷。
不轮换,等于给攻击者发"长期通行证"
内部人员泄露的旧密码长期有效,攻击者拿到后可以长期潜伏,损失持续扩大;更糟的是,开发、测试、生产共用同一套数据库账号,DBA 和开发人员都知道最高权限密码,任何环节泄露都波及其他环境。
传统人工轮换的痛点是:要改密码、同步到所有应用、重启服务、验证连通性,一套流程走完动辄几天,业务还怕中断。于是"不换"成了最省事的选择——也最危险。
静态凭据:定时轮换 + 批量灰度
SMS 对静态凭据支持周期性自动轮转策略,例如每 30 天执行一次,系统自动完成"密码生成 → 旧密码作废 → 新密码下发"全流程。关键在于批量灰度轮换:新密码生成后通过 API 自动推送到对应业务系统配置中,应用无需重启即可使用新凭据,业务零中断完成大规模密码更新。
参考最佳实践里的轮换基线:
- 生产环境:LDAP/RabbitMQ 等生产凭据 30 天一轮换,测试环境 7 天;
- 异常即轮:离职、疑似泄露、异常登录、权限调整等事件,立即手动触发轮换;
- 版本治理:凭据按
label/version隔离,支持回退,避免一刀切导致大面积失联。
据安当客户数据,自动轮换可减少约80% 的人工操作量,某零售企业把多云数据库凭据轮换从人工 3 天缩至自动 5 分钟。
动态凭据:根本不需要"长期密码"
比轮换更彻底的方案是数据库动态凭据——SMS 托管数据库根账号,按需为每个业务系统动态生成临时子账号,权限精准对应需求,到期自动销毁。
其两层模型(控制面/业务面)是核心:
- 根凭据(上游控制面):高权限账号,只用于创建/授权/回收子凭据,权限收敛到"最小可管理集"(创建用户、授予/撤销权限、删除子用户、必要时自身轮转),不授予跨实例超大权限;
- 子凭据(业务面):基于根凭据派生的临时账号,生命周期短、权限小、面向具体业务发放,权限优先级为表级 → 库级 → 全库高权限。
效果:不让业务长期持有固定 DBA 账号 → 由 SMS 按需生成短期账号 → 通过 TTL/续约/回收降低泄露风险 → 权限控制到库级/表级。DBA 无需知晓密码,凭据按生命周期自动销毁,支持 MySQL、PostgreSQL、Oracle、SQL Server、Redis、达梦、人大金仓等。
轮换最佳实践红线
- 轮换前先校验根凭据连通性,再创建子用户、授予最小权限、写入 TTL/MaxTTL/过期时间、记录归属与审计;
- 权限红线(禁止):
.*全通配权限、全量配置权限、管理员角色、生产消费共用同一账号、多系统共用同一业务账号; - 高敏凭据(私钥、管理员密码、高权限密钥、签名密钥)限制导出,避免明文散落。
把轮换从"怕出事所以不换"变成"策略驱动、零接触、零中断",企业的凭据安全才算真正闭环。