调整默认身份插件(default_authentication_plugin)配置后,创建新用户未使用默认的身份插件

【 TiDB 版本】
5.7.25-TiDB-v6.5.10

【 Bug 的影响】
修改默认身份认证插件后未生效

【可能的问题复现步骤】
1、set global default_authentication_plugin=‘caching_sha2_password’;
2、show variables like ‘%default_authentication_plugin%’;
3、create user test@‘%’ identified by ‘12345’;
4、select host,user,authentication_string,plugin from mysql.user where user=‘test’;

tidb中default_authentication_plugin 的作用和mysql8不同:tidb仅用于告诉客户端“服务器支持哪些认证方式”,而非控制用户创建的默认值。
TiDB 的设计逻辑:通过强制显式指定用户认证插件,避免全局参数变更导致的安全风险,同时提供更细粒度的权限控制。
正确操作:创建用户时,必须使用 WITH 子句明确指定插件,否则 TiDB 会回退到安全兼容的默认值(mysql_native_password)。

这段有文档说明吗?

https://docs.pingcap.com/zh/tidb/stable/system-variables/#default_authentication_plugin
服务器和客户端建立连接时,这个变量用于设置服务器对外通告的默认身份验证方式,并没有说要运用到创建用户上

1 个赞

这个表述也太含蓄了 :unamused: