MySQL包含一个测试插件,该测试插件检查帐户凭据并记录服务器错误日志的成功或失败。这是一个可加载插件(未构建),必须在使用前安装。
与内置本机插件不同,测试插件源代码与服务器源分开,因此可以将其作为一个相对简单的示例,演示如何编写可加载的身份验证插件。
此插件旨在用于测试和开发目的,不适用于生产环境或接触到公共网络的服务器。
下表显示了插件和库文件名。文件名后缀可能在您的系统上有所不同。该文件必须位于名为的目录中plugin_dir.
系统变量。
表6.11测试身份验证的插件和库名称
插件或文件 | 插件或文件名 |
---|---|
服务器端插件 | test_plugin_server |
客户端插件 | auth_test_plugin. |
库文件 | auth_test_plugin.so. |
以下部分提供特定于测试可插拔身份验证的安装和使用信息:
有关MySQL中可插拔身份验证的一般信息,请参阅第4.17节“可插拔身份验证”。
本节介绍如何安装测试身份验证插件。有关安装插件的一般信息,请参阅安装和卸载插件。
要通过服务器可用,插件库文件必须位于MySQL插件目录中(由此指定的目录plugin_dir.
系统变量)。如有必要,请通过设置值来配置插件目录位置plugin_dir.
在服务器启动时。
要在服务器启动时加载插件,请使用-plugin-load-add
选项可命名包含它的库文件。使用此插件加载方法,每次服务器启动时都必须选择选项。例如,将这些行放在服务器中我.CNF.
文件,调整。所以
必要时为您的平台后缀:
[mysqld] plugin-load-add = auth_test_plugin.so
修改后我.CNF.
,重新启动服务器以使新设置生效。
或者,要在运行时加载插件,请使用此语句,调整。所以
必要时为您的平台后缀:
安装plugin test_plugin_server soname'auth_test_plugin.so';
安装插件
立即加载插件,并将其注册mysql.plugins.
系统表使服务器为每个后续正常启动加载它而无需-plugin-load-add
。
要验证插件安装,请检查Information_schema.plugins.
表或使用显示插件
声明(参见获取服务器插件信息)。例如:
mysql> select plugin_name,plugin_status from Information_schema.plugins,其中plugin_name喜欢'%test_plugin%';+ ------------------------------- + |plugin_name |plugin_status |+ ------------------------------- + |test_plugin_server |活跃|+ ------------------------------- +
如果插件无法初始化,请检查服务器错误日志以获取诊断消息。
要将MySQL帐户与Test插件关联,请参阅使用测试可插拔身份验证。
用于卸载测试身份验证插件的方法取决于您安装的方式:
如果您使用a在服务器启动时安装了插件
-plugin-load-add
选项,在没有选项的情况下重新启动服务器。如果您使用的运行时安装了插件
安装插件
语句,它仍然在服务器重新启动时安装。卸载它,使用卸载插件
:卸载插件test_plugin_server;
要使用测试身份验证插件,请创建一个帐户和名称该插件确定
条款:
创建使用test_plugin_server标识的用户'testuser'@'localhost'testpassword.'
然后提供- 用户
和- 密码
连接到服务器时该帐户的选项。例如:
shell> mysql -user = testuser --password输入密码:testpassword.
插件获取从客户端收到的密码,并将其与存储在中的值进行比较Authentication_String.
帐户行的列mysql.user.
系统表。如果两个值匹配,则插件返回Authentication_String.
值作为新的有效用户ID。
您可以查看服务器错误日志,以查找指示身份验证是否成功的消息(请注意,密码报告为“用户“):
[注意] Plugin Test_plugin_server报告:'成功经过身份验证的用户testpassword.'