【弱密码】MySQL8-Authentication-plugin

概述:MySQL8 身份认证插件相关。本文从插件本身,MySQL版本和使用三个方面记录一下。

相关推荐:

身份认证插件

MySQL8.0版本(8.0.4版本)在密码认证方式上发生了改变,由原本的 mysql_native_password 改为了 caching_sha2_password,在 8.0.34 版本开始将不再使用 mysql_native_password 验证插件。相应的,客户端连接所使用的 libmysqlclient 也做了修改。

对于高版本的MySQL版本,默认使用的就是 caching_sha2_password 加密方式,但如果是从之前的版本升级的,在连接时可以使用命令行参数 --default-auth 指定验证方式:

1
mysql --default-auth=mysql_native_password

新的认证插件总共有两个:

  • sha256_password: sha256加密插件
  • caching_sha2_passowrd:带缓存的sha256加密插件,认证更快

使用

要创建 caching_sha2_password 用户:

1
2
CREATE USER 'sha2user'@'localhost'
IDENTIFIED WITH caching_sha2_password BY 'password';

配置默认的身份认证插件:

1
2
[mysqld]
default_authentication_plugin=caching_sha2_password

配置默认身份认证插件后,创建的用户就默认为 caching_sha2_password 了,再次创建时无需显式声明:

1
CREATE USER 'sha2user'@'localhost' IDENTIFIED BY 'password';

但是如果这时你需要创建 mysql_native_password 的用户,则仍需要显式指明你所需要的插件:

1
2
CREATE USER 'nativeuser'@'localhost'
IDENTIFIED WITH mysql_native_password BY 'password';

高级配置

MySQL8 的身份认证支持自定义的加密过程,可以在未加密连接上使用 RSA 进行加密密码交换。详细操作参考官方说明: MySQL :: MySQL 8.0 参考手册 :: 6.4.1.2 缓存 SHA-2 可插入身份验证


【弱密码】MySQL8-Authentication-plugin
https://hodlyounger.github.io/wiki/MySQL8/【弱密码】MySQL8-plugin/
作者
mingming
发布于
2023年12月7日
许可协议