先说解决办法…
①执行以下命令,查询账号信息(登录Mariadb客户端,使用mysql数据库)
select * from global_priv G;
执行命令结果如下,这里只关注root用户的信息,auth_or > plugin > unix_socket,身份验证插件unix_socket是一种无密码安全机制,所以使用此身份验证插件即会存在无密码可直接登录的情况。

②、解决办法,将root用户切换到基于密码的身份验证,并设置登录密码
ALTER USER root@localhost IDENTIFIED VIA mysql_native_password USING PASSWORD("填登录密码");
PS:unix_socket 身份验证机制(官方文档)
安全:
身份验证插件unix_socket是一种无密码安全机制。它的安全性在于对 Unix 用户的访问强度,而不是密码的复杂性和保密性。由于安全性与密码不同,因此需要思考其优点和缺点,并且每次安装时这些优点和缺点都不一样。
优点:
- 访问权限仅限于 Unix 用户,因此,例如,www-data用户无法root使用unix_socket身份验证插件进行访问。
- 没有密码可以暴力破解。
- 不存在因用户意外、备份安全性差或配置文件中的密码安全性差而意外泄露的密码。
- 默认 Unix 用户安全性一般很强,可以防止远程访问和密码暴力尝试。
缺点:
- 身份验证插件的强度unix_socket实际上就是系统上 Unix 用户的安全强度。Unix用户默认安装在大多数情况下是足够安全的,但是业务需求或不熟练的管理可能会暴露风险。
- 没有屏幕锁定的公共访问区域,未经授权的用户可以在其中访问授权用户的登录 Unix 用户。
- 广泛的 sudo 访问权限授予用户执行不同 Unix 用户命令的权限。
- 可由 Unix 用户以外的 Unix 用户写入并由 Unix 用户执行(cron 或直接)的脚本。
- 容易受到命令注入影响的网页,其中运行该网页的 Unix 用户在数据库中具有不打算使用的提升权限。
- 不良的 Unix 用户密码实践,包括弱用户密码、密码暴露和密码重用,以及未经授权的用户利用此弱点的访问漏洞/机制。
- 远程访问机制和网络文件系统权限较弱。
- 用户安全行为不佳,包括运行不受信任的脚本和软件。
总结:简单粗暴理解就是你能登录服务器,即认为你有权限,MaraiaDB不再对你进行身份验证,相当于登录认证交给了Linux登录认证。
© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END




![[2020.8.26更新]搜索文件夹下所有txt或log文件中的某个内容 - 宋马](https://pic.songma.com/blogimg/20250422/864ade1aa6744d478f350ed29bbc0618.png)









暂无评论内容