关于unix网络编程:MySQL-authsocket-验证插件的工作原理

54次阅读

共计 418 个字符,预计需要花费 2 分钟才能阅读完成。

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)

正文完
 0