【原创】MySQL Proxy - read_auth_result()

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

       在鉴权阶段由服务器返回的包可以通过 read_auth_result() 函数进行捕获分析。该函数的唯一参数是由服务器返回的鉴权包的本身。由于该包是一个裸 MySQL 网络协议包,你必须通过检查包的首字节来确认包的类型及其对应的内容。可以使用常量 MYSQLD_PACKET_ERR 和 MYSQLD_PACKET_OK 来标示当前鉴权是否成功:  


function read_auth_result(auth)
        local state = auth.packet:byte()


        if state == proxy.MYSQLD_PACKET_OK then
                print("<-- auth ok");
        elseif state == proxy.MYSQLD_PACKET_ERR then
                print("<-- auth failed");
        else
                print("<-- auth ... don't know: " .. string.format("%q", auth.packet));
        end
end



       如果一个允许使用 long-password 的客户端尝试向支持 long-password 的服务器进行鉴权,但是实际提供的用户密码确是 short 的,read_auth_result() 函数将会被调用两次。第一次,auth.packet:byte() 的值将会等于 254 ,表明客户端应该使用老版本的密码协议再尝试一次。第二次调用 read_auth_result() 函数时,auth.packet:byte() 的值将会指出鉴权是否真正成功。
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
监控 MySQL 关系型数据库
|
关系型数据库 MySQL 开发工具
|
关系型数据库 MySQL 开发工具
|
关系型数据库 MySQL 测试技术
|
关系型数据库 MySQL 测试技术