Mysql不需要身份验证便可远程连接故障

首先感谢在本次故障中阿铭对我的无私帮助,万分感谢!阿铭linux论坛:http://www.apelearn.com/study_v2/


问题描述:

公司安全部门扫描到数据库安全隐患,数据库不需要经过身份验证就可直接远程连接。

处理步骤:

①:查看发现my.cf中开启了--skip-grant-table   #怀疑是之前的管理员忘记了root密码才这样弄的。

②:使用如下命令更改数据库密码并写入。如果你知道root密码可以省掉,因为我没有root密码所以就更改了一下。

UPDATE user SET Password = password(‘123456‘) where user = ‘root‘;

FLUSH privileges;

③:停止数据库,将--skip-grant-table注释掉,并启动数据库。

④:使用如下命令登陆数据库,但是报错。

mysql -uroot -p123456

ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)

⑤:使用mysql -uroot可以进入数据库,但是只能看到test这个数据,下图是我在加--skip-grant-table下查到的所有数据看。

+-----------------------+

| Database              |

+-----------------------+

| information_schema    |

| activemq              |

| bjsdzx_real           |

| emcc                  |

| estonerhr_cms         |

| estonerhr_oa          |

| logistic              |

| logistic_shortmessage |

| mysql                 |

| performance_schema    |

| test                  |

+-----------------------+

注:在加--skip-grant-table时使用命令 select host, user, password from mysql.user;得到如下信息。

+-----------------------+--------+-------------------------------------------+

| host                  | user   | password                                  |

+-----------------------+--------+-------------------------------------------+

| %                     | root   | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

| localhost.localdomain | root   | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

| 127.0.0.1             | root   | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

| ::1                   | root   | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

| localhost             |        |                                           |

| localhost.localdomain |        |                                           |

| %                     | server | *866D5A029D62EC05ACC4584CE50F1CD2F50E0E82 |

+-----------------------+--------+-------------------------------------------+

7 rows in set (0.00 sec)

解决步骤:铭哥给我的答案是,在mysql.user表里两个空用户,删除之后改密码然后授权就可以了。

①在开启--skip-grant-table参数的情况下启动数据库并使用如下命令删除mysql.user表里的空用户。

mysql> delete from mysql.user where user=‘‘;

Query OK, 2 rows affected (0.00 sec)

②使用如下命令查询mysql.user里面的内容,发现空用户已经被删除了。

mysql> select host, user, password from user\G;

+-----------------------+--------+-------------------------------------------+

| host                  | user   | password                                  |

+-----------------------+--------+-------------------------------------------+

| %                     | root   | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

| localhost.localdomain | root   | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

| 127.0.0.1             | root   | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

| ::1                   | root   | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

| %                     | server | *866D5A029D62EC05ACC4584CE50F1CD2F50E0E82 |

+-----------------------+--------+-------------------------------------------+

5 rows in set (0.00 sec)

③使用如下命令更改root密码为123456

mysql> UPDATE mysql.user SET Password = password(‘123456‘) where user = ‘root‘;

④使用如下命令授权root用户权限

mysql> grant all on *.* to ‘root‘@‘%‘ identified by ‘123456‘;

⑤使用如下命令将内存信息写入文件

mysql> flush privileges;

⑥退出登录,注释掉my.cf文件里的--skip-grant-table

⑦重启mysql服务。

验证:

①使用如下命令进入mysql

mysql>mysql -uroot -p 123456;

②使用如下命令查询所有数据库,发现都能看得见了

mysql> show databases;

+-----------------------+

| Database              |

+-----------------------+

| information_schema    |

| activemq              |

| bjsdzx_real           |

| emcc                  |

| estonerhr_cms         |

| estonerhr_oa          |

| logistic              |

| logistic_shortmessage |

| mysql                 |

| performance_schema    |

| test                  |

+-----------------------+

11 rows in set (0.00 sec)

=============================至此结束,故障处理完毕===================

时间: 2024-10-31 00:00:47

Mysql不需要身份验证便可远程连接故障的相关文章

mysql 5.7.16安装与给远程连接权限

ZIP Archive版是免安装的.只要解压就行了.不需要安装.我的放在d盘啦. 1.配置: 也就是my.ini文件的由来. 把my-default.ini(此文件是解压之后,自带的)这个文件复制一下重命名my.ini,然后替换成如下的代码即可:(把里面D:\mysql\mysql-5.6.17-winx64改成你自己的软件路径,保存) (下面的内容即为所新建的my.ini文件的内容.记得修改里面的路径.) [mysql] # 设置mysql客户端默认字符集 default-character-

windows 2008 R2 出现身份验证错误。 无法连接到本地安全机构

(1)故障现象:1.跟新补丁后,无法远程登录windows 服务器提示: (2)故障原因:通常,此错误消息指向禁止到远程桌面服务器的安全连接的网络拥塞.但是,此错误消息也可能如果远程桌面服务器被配置为安全连接使用 TLS 和 TLS 在不支持尝试的 RDP 连接的客户端 (源计算机上). (3)解决办法:在 Windows Server 2008 R2 中的远程桌面提供三种类型的安全连接: 协商:此安全方法使用 TLS 1.0 如果支持 TLS,则验证服务器的身份.如果不支持 TLS,则服务器未

C#连接sql server windows 和 sqlserver 身份验证的两种连接字符串

//sql server 身份验证 连接字符串 private string ConnstrSqlServer = "server=服务器名称;uid=登录名称;pwd=登录密码;database=数据库名称"; //windows 身份验证连接字符串 private string ConnstrWindows = "server=服务器名称;database=数据库名称;Trusted_Connection=SSPI";

C#连接sqlserver windows 和 sqlserver 身份验证的两种连接字符串

//sql server 身份验证 连接字符串 private string ConnstrSqlServer = "server=服务器名称;uid=登录名称;pwd=登录密码;database=数据库名称"; //windows 身份验证连接字符串 private string ConnstrWindows = "server=服务器名称;database=数据库名称;Trusted_Connection=SSPI"; // 在 C# 代码中用 SqlClien

mysql 5.7 修改root密码允许远程连接

1.修改root密码(其他用户类似)  试过网上看的一些 在mysql数据库执行 update user set password='新密码'  where user='root' 执行说找不到字段,猜想可能以前老版本跟新版本数据表结构不一样了,所以看了下表,应该是authentication_string字段  update user set authentication_string='新密码' where user='root'. 2.局域网或者远程用户无法访问  看了下有些描述的比较麻烦

mac远程连接windows

第一步:在Mac上安装Remote Desktop Connection 进入Microsoft Remote Desktop Connection下载安装包. 下载完成之后,双击安装包进行安装. 第二步:在Windows电脑上设置“远程设置” 右键“我的电脑”,单击“属性”,单击“远程设置” 勾选“允许远程协助连接这台计算机”,勾选“允许远程连接到此计算机” 单击“确定”退出 第三步:查看Windows电脑的IP地址 ctrl 输入“cmd”并回车,这样就打开了命令提示符 在命令提示符里输入“

Windows XP SP3远程桌面连接支持网络级身份验证配置

知识点:网络级别身份验证 (NLA) 是一项新的身份验证方法,即在您建立完整的远程桌面连接前就完成了用户身份验证并显示登录屏幕.它是一项更加安全的身份验证方法,可以防止远程计算机受到 黑客或恶意软件的攻击.NLA 的优点是: 最初只需要少量的远程计算机资源.对用户进行身份验证之前,远程计算机仅使用有限的资源,而不是像在先前版本中启动整个远程桌面连接.  可以通过降低拒绝服务攻击(尝试限制或阻止访问 Internet)的风险提供更高的安全保障.  使用远程计算机身份验证可以防止我们连接到因恶意目的

788错误。L2TP 连接尝试失败,因为安全层不能身份验证远程计算机。怎么解决?

需要确保IPsec Policy Agent服务已经自动随机器启动,计算机管理-->服务-->把IPsec Policy Agent启动方式改自动. 600发生了内部错误,重启 601检测到无效的端口 602问题:指定的端口已打开,拨号网络由于设备安装错误或正在使用,不能进行连接原因:虚拟拔号软件没有完全和正确的安装,解决:退出COM应用程序,卸载干净任何拔号软件,并重新安装拔号软件. 603缓冲区太小,发生了内部错误 604指定了错误的信息.重新配置“网络和拨号连接” 605不能设置的端口信

windows远程桌面连接时,显示发生身份验证错误,给函数提供的身份无效

摘自:https://www.landui.com/help/show-7787 初次看到这个错误的时候懵了.访问给的地址一看,发现大概意思是不安全了,微软要更新一下 凭据安全支持提供程序协议 (CredSSP) 是处理其他应用程序的身份验证请求的身份验证提供程序. CredSSP 的未修补版本中存在远程代码执行漏洞. 成功利用此漏洞的攻击者可以在目标系统上中继用户凭据以执行代码. 任何依赖 CredSSP 进行身份验证的应用程序都可能容易受到此类攻击. 此安全更新通过更正 CredSSP 在身