前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[MYSQL] 如何使用用户名为空(匿名账号)的账号登录mysql数据库

[MYSQL] 如何使用用户名为空(匿名账号)的账号登录mysql数据库

原创
作者头像
大大刺猬
发布2024-03-18 11:14:16
4910
发布2024-03-18 11:14:16
举报
文章被收录于专栏:大大刺猬

导读

巡检的时候, 发现数据库存在用户名为空的账号.

分析

哪来的这个空账号?

低版本的mysql安装的时候会创建用户名为空的账号, 然后升级到高版本的时候附带了这个账号.

但官方生成的那个匿名账号是 ''@'localhost'的. 所以这个账号很大可能是业务创建的.(得解析binlog找了)

这个空账号有无安全隐患?

要知道这个账号是否安全, 首先查看它的权限:

代码语言:sql
复制
show grants for ''@'%';

权限很大.... 不安全

再看下是否有密码

代码语言:sql
复制
select user,host,plugin,authentication_string from mysql.user where user='';

有密码, 虽然是mysql_native_password加密方式. 勉强算是安全.

尝试登录下这个账号

如果我们直接使用命令行登录:

代码语言:shell
复制
mysql -h127.0.0.1 -P3314 -p12345678 --user ''

发现会用户名会自动识别为 操作系统用户名. 所以不能直接使用命令行登录.

使用应用程序登录

比如使用pymysql登录

代码语言:python
代码运行次数:0
复制
import pymysql
conn = pymysql.connect(
            host='127.0.0.1',
            port=3314,
            user='',
            password='12345678',
            )

还是报错, 也自动使用了当前操作系统的用户作为mysql用户.

自定义脚本连接

这时候就需要我们的知识储备了. 好在之前有解析过mysql的连接协议: https://cloud.tencent.com/developer/article/2242261

我们直接把源码复制过来使用即可, 无需任何修改

代码语言:python
代码运行次数:0
复制
import testpymysql
aa = testpymysql.mysql()
aa.connect()
以前写的, 提示不算友好, 但能用就行
以前写的, 提示不算友好, 但能用就行

登录数据库验证

代码语言:sql
复制
show processlist;

发现确实登录上了.

总结

1. 虽然mysql里存在匿名账号, 但是要求有密码要求, 也还算安全.

2. 无法直接使用mysql命令和业务程序连接. 因为会自动使用当前OS用户作为mysql用户连接. (所以这账号到底有啥用?)

3. 定期巡检. 就能早点发现这个用户. 早发现,早处理(时间久了, binlog就被清除了, 就找不到原因了.)

4. 匿名账号可能影响审计之类的, 建议清楚匿名账号(即使它要密码才能登录)

源码看之前的文章即可

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导读
  • 分析
    • 哪来的这个空账号?
      • 这个空账号有无安全隐患?
        • 要知道这个账号是否安全, 首先查看它的权限:
        • 再看下是否有密码
        • 尝试登录下这个账号
    • 总结
    相关产品与服务
    云数据库 MySQL
    腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档