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远程登录,以及删除测试数据库等。

相关推荐
大春儿的试验田几秒前
高并发收藏功能设计:Redis异步同步与定时补偿机制详解
java·数据库·redis·学习·缓存
Ein hübscher Kerl.32 分钟前
虚拟机上安装 MariaDB 及依赖包
数据库·mariadb
长征coder1 小时前
AWS MySQL 读写分离配置指南
mysql·云计算·aws
醇醛酸醚酮酯1 小时前
Qt项目锻炼——TODO清单(二)
开发语言·数据库·qt
ladymorgana1 小时前
【docker】修改 MySQL 密码后 Navicat 仍能用原密码连接
mysql·adb·docker
PanZonghui1 小时前
Centos项目部署之安装数据库MySQL8
linux·后端·mysql
GreatSQL社区2 小时前
用systemd管理GreatSQL服务详解
数据库·mysql·greatsql
掘根2 小时前
【MySQL进阶】错误日志,二进制日志,mysql系统库
数据库·mysql
weixin_438335402 小时前
基础知识:mysql-connector-j依赖
数据库·mysql
小明铭同学2 小时前
MySQL 八股文【持续更新ing】
数据库·mysql