要编译和安装插件库文件,请使用
第 4.4.3 节“编译和安装插件库”中的说明。要使库文件可用,请将其安装在插件目录(由
plugin_dir
系统变量命名的目录)中。
向服务器注册服务器端插件。例如,要在服务器启动时加载插件,请使用一个
--plugin-load=auth_simple.so
选项,.so
根据需要调整平台的后缀。
创建一个用户,服务器将为其使用
auth_simple
插件进行身份验证:
mysql> CREATE USER 'x'@'localhost'
-> IDENTIFIED WITH auth_simple;
使用客户端程序以用户身份连接到服务器
x
。服务器端
auth_simple
插件与客户端程序通信,它应该使用客户端
auth_simple
插件,后者将密码发送给服务器。服务器插件应该拒绝发送空密码的连接并接受发送非空密码的连接。以各种方式调用客户端程序来验证这一点:
$> mysql --user=x --skip-password
ERROR 1045 (28000): Access denied for user 'x'@'localhost' (using password: NO)
$> mysql --user=x --password
Enter password: abc
mysql>
因为服务器插件接受任何非空密码,所以它应该被认为是不安全的。测试插件以验证其是否正常工作后,请在没有
--plugin-load
选项的情况下重新启动服务器,以免无意中让服务器运行时加载了不安全的身份验证插件。另外,删除用户DROP USER
'x'@'localhost'
。
有关加载和使用身份验证插件的其他信息,请参阅 安装和卸载插件和 可插入身份验证。
如果您正在编写支持使用身份验证插件的客户端程序,通常此类程序会通过调用
mysql_options()
设置
MYSQL_DEFAULT_AUTH
和
MYSQL_PLUGIN_DIR
选项来加载插件:
char *plugin_dir = "path_to_plugin_dir";
char *default_auth = "plugin_name";
/* ... process command-line options ... */
mysql_options(&mysql, MYSQL_PLUGIN_DIR, plugin_dir);
mysql_options(&mysql, MYSQL_DEFAULT_AUTH, default_auth);
通常,该程序还将接受
使用户能够覆盖默认值的选项
--plugin-dir
。
--default-auth
如果客户端程序需要较低级别的插件管理,则客户端库包含带有st_mysql_client_plugin
参数的函数。请参阅
C API 客户端插件接口。