扩展 MySQL 8.0  / 第 4 章 MySQL 插件 API  / 4.4 编写插件  / 4.4.9 编写认证插件  /  6.4.1.1 原生可插拔认证

6.4.1.1 原生可插拔认证

MySQL 包含两个实现本机身份验证的插件;也就是说,基于可插入身份验证引入之前使用的密码哈希方法的身份验证。本节介绍,它使用本机密码哈希方法mysql_native_password实现对系统表的身份验证 。mysql.user有关 mysql_old_password使用旧的(4.1 之前的)本机密码哈希方法实现身份验证的信息,请参阅 第 6.4.1.2 节,“旧的本机可插入身份验证”。有关这些密码散列方法的信息,请参阅 第 6.1.2.4 节,“MySQL 中的密码散列”

下表显示了服务器端和客户端的插件名称。

表 6.8 本机密码身份验证的插件和库名称

插件或文件 插件或文件名
服务器端插件 mysql_native_password
客户端插件 mysql_native_password
库文件 无(内置插件)

以下部分提供特定于本机可插入身份验证的安装和使用信息:

有关 MySQL 中可插入身份验证的一般信息,请参阅第 6.2.11 节,“可插入身份验证”

安装本机可插入身份验证

mysql_native_password插件以服务器和客户端形式存在:

  • 服务器端插件内置于服务器中,无需显式加载,也无法通过卸载来禁用。

  • 客户端插件内置于 libmysqlclient客户端库中,可用于链接到 libmysqlclient.

使用本机可插入身份验证

MySQL 客户端程序 mysql_native_password默认使用。该 --default-auth选项可以用作有关程序可以使用哪个客户端插件的提示:

$> mysql --default-auth=mysql_native_password ...

如果帐户行未指定插件名称,则服务器使用 mysql_native_passwordmysql_old_password插件对帐户进行身份验证,具体取决于 Password列中的密码哈希值是使用本机哈希还是旧的 4.1 之前的哈希方法。客户必须匹配Password帐户行列中的密码。