MySQL身份验证的auth_socket插件

在Ubuntu 20.04 LTS上,MySQL 8.0默认使用auth_socket插件进行身份验证,可能存在意想不到的情况。

一、auth_socket插件

在使用sudo mysql或通过sudo切换用户后执行任何MySQL命令时,不需要输入密码或错误密码都可以正常登入mysql数据库,这是因为auth_socket插件利用了Linux的socket机制来验证用户,这种方式不需要密码,而是依赖于当前用户已经通过sudo获得了足够的权限。

优势:

1、安全性:使用auth_socket插件可以减少安全风险,因为不需要在命令行中输入密码。这对于自动化脚本或服务尤其有用,因为脚本通常以非交互方式运行,并且不希望包含密码。

2、便捷性:对于需要频繁访问MySQL数据库的管理员来说,使用sudo mysql命令而不需要输入密码可以大大提高工作效率。

劣势:

1、任何拥有sudo权限的用户,都可以访问mysql数据库。

二、查看身份认证方式

select host,user,plugin from mysql.user;

备注:没有auth_socket插件

三、更换身份认证方式

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234#ASD' PASSWORD EXPIRE NEVER;

附:Mysql加固

安装完成后,建议使用命令mysql_secure_installation进行加固。

运行mysql_secure_installation脚本可以设置root密码,删除匿名用户,禁止root远程登录,以及删除测试数据库等。

相关推荐
阿里小阿希16 小时前
Vue3 + Element Plus 项目中日期时间处理的最佳实践与数据库设计规范
数据库·设计规范
且行志悠17 小时前
Mysql的使用
mysql
白鹭17 小时前
MySQL源码部署(rhel7)
数据库·mysql
666和77718 小时前
Struts2 工作总结
java·数据库
还听珊瑚海吗18 小时前
SpringMVC(一)
数据库
星期天要睡觉19 小时前
MySQL 综合练习
数据库·mysql
Y40900119 小时前
数据库基础知识——聚合函数、分组查询
android·数据库
JosieBook20 小时前
【数据库】MySQL 数据库创建存储过程及使用场景详解
数据库·mysql