auth_socket
的验证形式是:客户端通过启用SO_PEERCRED
选项的socket连贯到mysql服务端,服务端从该socket检测运行该客户端的零碎用户名是否为要登录的mysql用户名。若用户名雷同,则登录,若不同,则回绝。若用户名应用未启用SO_PEERCRED
选项的socket连贯,也会回绝。
SO_PEERCRED
是一个Unix域socket能力启用的选项,而Unix域socket只在本机通信时才会应用。所以,配置了auth_socket
的mysql用户无奈通过mysql客户端近程登录,因为近程登录会启用TCP/IP socket。当然,既然叫Unix域,能应用这种socket的当然只有Linux和其余类Unix操作系统。启用该选项的socket,会向指标发送连贯者的凭据信息(包含用户名)。mysql服务端获取该凭据并比对用户名是否相等以此决定是否容许登录。
参考
-[1]Linux manual page unix(7)