4.4.9.3使用鉴权插件

要编译和安装插件库文件,请使用第4.4.3节“编译和安装插件库”.要使库文件可用,请将其安装到插件目录(由plugin_dir系统变量)。

向服务器注册服务器端插件。例如,要在服务器启动时加载插件,可以使用——plugin-load = auth_simple.so选项,调整所以根据需要为平台添加后缀。

创建一个用户,服务器将为其使用auth_simple插件身份验证:

mysql> CREATE USER 'x'@'localhost' -> IDENTIFIED WITH auth_simple;

使用客户端程序以用户身份连接到服务器x.服务器端auth_simple插件与它应该使用的客户端程序通信auth_simple插件,后者将密码发送到服务器。服务器插件应该拒绝发送空密码的连接,而接受发送非空密码的连接。调用客户端程序的每一种方法来验证:

shell> mysql——user=x——skip-password ERROR 1045 (28000): Access denied for user 'x'@'localhost' (using password: NO) shell> mysql——user=x——password Enter password: abc mysql>

因为服务器插件接受任何非空密码,它应该被认为是不安全的。在测试插件以验证其工作之后,重新启动服务器——plugin-load选项,以避免让服务器运行时加载不安全的身份验证插件。另外,删除用户把用户“x”@“localhost”

有关加载和使用身份验证插件的其他信息,请参见安装和卸载插件,可插入身份验证

如果您正在编写支持使用身份验证插件的客户端程序,通常这样的程序会通过调用来加载插件mysql_options ()设置MYSQL_DEFAULT_AUTH而且MYSQL_PLUGIN_DIR选项:

Char *plugin_dir = "path_to_plugin_dir”;Char *default_auth = "plugin_name”;/ *……处理命令行选项…*/ 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客户端插件接口