mysql

native_password在MySQL中的使用场景

小樊
82
2024-09-16 02:11:21
栏目: 云计算

native_password 是 MySQL 8.0 之前版本中默认的身份验证插件

  1. 连接到 MySQL 服务器:当客户端(如 MySQL Workbench、phpMyAdmin 或命令行工具)尝试连接到 MySQL 服务器时,服务器会要求客户端提供用户名和密码。客户端使用 native_password 插件对密码进行加密,然后将加密后的密码发送给服务器。

  2. 验证用户身份:服务器收到客户端发送的加密密码后,使用相同的加密算法对存储在用户表(mysql.user)中的密码进行加密。然后,服务器将两个加密密码进行比较。如果它们匹配,说明客户端提供了正确的密码,服务器将允许客户端访问。

  3. 更改用户密码:当管理员或用户需要更改密码时,MySQL 会使用 native_password 插件对新密码进行加密,并将加密后的密码存储在用户表中。

需要注意的是,从 MySQL 8.0 开始,默认的身份验证插件已更改为 caching_sha2_password。这是因为 native_password 使用的加密算法被认为在现代安全标准下不够强大。如果你需要在 MySQL 8.0 及更高版本中使用 native_password 插件,可以在创建用户或更改用户密码时显式指定插件。例如:

CREATE USER 'myuser'@'localhost' IDENTIFIED WITH native_password BY 'mypassword';

或者:

ALTER USER 'myuser'@'localhost' IDENTIFIED WITH native_password BY 'mypassword';

0
看了该问题的人还看了