Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Client-Side Cleartext Pluggable Authentication

8.4.1.4 客户端明文可插拔身份验证

客户端身份验证插件可用,允许客户端将密码以明文形式发送到服务器,而不进行哈希或加密。该插件内置于 MySQL 客户端库中。

以下表格显示插件名称。

表 8.19 明文身份验证插件和库文件名称

插件或文件 插件或文件名称
服务器端插件 无,见讨论
客户端插件 mysql_clear_password
库文件 无(插件内置)

许多客户端身份验证插件在将密码发送到服务器之前执行哈希或加密操作。这使客户端能够避免以明文形式发送密码。

对于需要服务器接收客户端输入的密码的身份验证方案,无法对密码进行哈希或加密操作。在这种情况下,客户端使用 mysql_clear_password 插件,该插件使客户端能够将密码以明文形式发送到服务器。没有对应的服务器端插件。相反,mysql_clear_password 可以与任何需要明文密码的服务器端插件配合使用。(例如 PAM 和简单 LDAP 身份验证插件;见 第 8.4.1.5 节,“PAM 可插拔身份验证”,和 第 8.4.1.7 节,“LDAP 可插拔身份验证”。)

以下讨论提供了明文可插拔身份验证的使用信息。关于 MySQL 中的可插拔身份验证的一般信息,请见 第 8.2.17 节,“可插拔身份验证”

Note

以明文形式发送密码可能会在某些配置中出现安全问题。为了避免问题,如果有可能密码被截获,客户端应该使用保护密码的方法连接到 MySQL 服务器。可能的方法包括 SSL(见 第 8.3 节,“使用加密连接”),IPsec 或私有网络。

为了减少 mysql_clear_password 插件的意外使用,MySQL 客户端必须明确启用它。这可以通过以下方式实现:

  • 设置 LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN 环境变量的值,以 1Yy 开头。这将为所有客户端连接启用插件。

  • mysqlmysqladminmysqlcheckmysqldumpmysqlshowmysqlslap 客户端程序支持一个 --enable-cleartext-plugin 选项,该选项可以在每次调用时启用插件。

  • mysql_options() C API 函数支持一个 MYSQL_ENABLE_CLEARTEXT_PLUGIN 选项,该选项可以在每个连接基础上启用插件。此外,任何使用 libmysqlclient 并读取选项文件的程序都可以通过在客户端库读取的选项组中包含一个 enable-cleartext-plugin 选项来启用插件。