密码轮动方案——双密码策略

【需求涉及的问题场景】
密码轮动,因为很多公司都会有密码安全的管理,会定期的更换数据库的密码,
但是对于有多个数据库以及多个来源IP的时候,需要对新建所有用户,非常麻烦
【期望的需求行为】
类似于MySQL8.0 的双密码策略,希望可以引进到TiDB当中。
【需求可替代方案】
Alter user ‘user_name’@‘host’ identified by ‘new_pass’ retain current password.
Alter user ‘user_name’@‘host’ discard old password,这种实现方式。
【背景信息】
需要定期更换业务密码

你的意思是不是,应用使用主密码连接,每次按照要求更改密码的时候,都只改二级密码?这样密码也改了,涉及的范围没么那么大?

不是,你每次轮转的时候,先创建一个新的密码同时保留老的密码,等业务密码迁移到新的密码上时,让老的密码过期就好了。你可以看下percona mysql 8.0双密码策略。

1赞

了解了,另外问个事,你们目前是必须这样做了么?我们评等保的时候,这确实是个问题,不过由于其他方面我们得分比较高,也没纠结这个,我们的上级部门的安全监察人员,也没过多纠缠在这一点上。

其实换的时候新建一个用户也可以,但是如果你有多个DB 多个来源IP,创建新用户,重新授权,这些就比较麻烦,这个功能本身就是为了密码轮转的场景设计的,而且实现也比较简单,
image
就是在mysql.user表增加额外的密码信息即可,但是确实非常实用的功能

2赞

这个可以有,我们之前做审计就被问到了这个问题,然后审计方没有了解过tidb,也就没有追下去

是的,这个实现也很简单,也很有用,觉得官方可以推一推,就当作一个小的FIX

这个功能很有必要

双密码特性,在MySQL 8.0兼容性的规划中,
https://github.com/pingcap/tidb/issues/7968

Two passwords per account (8.0.14) Details

:+1::+1::+1:

兼容mysql8.0协议的tidb啥时候发版呀