暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

关于 mysql 授权账号权限时的空密码坑爹问题

SOHU-DBA 2015-05-24
156


关于 mysql 授权账号权限时的空密码坑爹问题




一下午过得很不开心,遇到一个相当的坑爹问题, 是关于 mysql 授权的问题…. 真的是把我坑的死去活来的…. 我都开始怀疑我以前的运维观了…


原文链接是,http://xiaorui.cc/?p=1440


mysql 是 5.7 的版本,这版本是支持 json 的,同事用这版本做过一定的测试。 随后我在这上面创建了几个库,并且做了权限的授予,但是发现密码总是不对,更甚至有时候是可以空密码进入的。 我当时以为是 5.7 本身的问题…. 都要把 mysql5.7 骂道天了 。


折腾了半天有各种的途径的 update 和 insert 账号密码,但还是不能用密码登录, 这时候,真的伤心欲绝,都没心情吃公司那下午茶水果了….


这时候,我已经要疯狂了,立马把 mysql5.7 干掉,直接上手编译安装 mysql5.6 ,但是一会又出现了这问题。 后来跟以前乐视的同事 徐长华 (现在是在搜狐做 dba 工作) 聊了下,才解决这问题….


[ruifengyun@bj-buzz-dev01 ~]$ mysql -ubuzz -p
Enter password:
ERROR 1045 (28000): Access denied for user ‘buzz’@'localhost’ (using password: NO)
[ruifengyun@bj-buzz-dev01 ~]$ mysql -ubuzz -p

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update user set password=password(’123123′) where user=’buzz’;
Query OK, 0 rows affected (0.02 sec)
Rows matched: 1 Changed: 0 Warnings: 0

mysql> SHOW GRANTS FOR buzz\G
*************************** 1. row ***************************
Grants for buzz@%: GRANT USAGE ON *.* TO ‘buzz’@'%’ IDENTIFIED BY PASSWORD ‘*E56A114692FE0DE073F9A1DD68A00EEB9703F3F1′
*************************** 2. row ***************************
Grants for buzz@%: GRANT ALL PRIVILEGES ON buzz_master
.* TO ‘buzz’@'%’
2 rows in set (0.00

mysql> select user,host,password from mysql.user order by user,host;
+————-+—————+——————————————-+
| user | host | password |
+————-+—————+——————————————-+
| | bj-buzz-dev01 | |
| | localhost | |
| buzz | % | *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1 |
| root | 127.0.0.1 | *B335B8949A6AF011EA3D9F37F046C6E413BC23FB |
| root | ::1 | |
| root | bj-buzz-dev01 | |
| root | localhost | *B335B8949A6AF011EA3D9F37F046C6E413BC23FB |
| weixin_user | % | *DF81D3DE3ABC1508BFB0F1D4DE9C2EECBAE43E4F |
| weixinuser | % | *DF81D3DE3ABC1508BFB0F1D4DE9C2EECBAE43E4F |
+————-+—————+——————————————-+
9 rows in set (0.00 sec)


解决方法, 删除为空的用户授权:

mysql>
mysql>
mysql> drop user ”@’localhost’;
Query OK, 0 rows affected (0.04 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> drop user ”@’bj-buzz-dev01′;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> select user,host,password from mysql.user order by user,host;
+————-+—————+——————————————-+
| user | host | password |
+————-+—————+——————————————-+
| admin | % | |
| buzz | % | *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1 |
| root | 127.0.0.1 | *B335B8949A6AF011EA3D9F37F046C6E413BC23FB |
| root | ::1 | |
| root | bj-buzz-dev01 | |
| root | localhost | *B335B8949A6AF011EA3D9F37F046C6E413BC23FB |
| weixin_user | % | *DF81D3DE3ABC1508BFB0F1D4DE9C2EECBAE43E4F |
| weixinuser | % | *DF81D3DE3ABC1508BFB0F1D4DE9C2EECBAE43E4F |
+————-+—————+——————————————-+
8 rows in set (0.00 sec)




现在好了,是因为有 mysql 库的 user 表有空值的情况…. 貌似 mysql 进行认证的时候,匹配都了空值,所以就直接能进入 myql 里面了。 再次感谢 长华,要没他,我估计今天要折腾疯狂了…











http://xiaorui.cc/2015/05/15/%E5%85%B3%E4%BA%8Emysql%E6%8E%88%E6%9D%83%E8%B4%A6%E5%8F%B7%E6%9D%83%E9%99%90%E6%97%B6%E7%9A%84%E7%A9%BA%E5%AF%86%E7%A0%81%E5%9D%91%E7%88%B9%E9%97%AE%E9%A2%98/




#sohu-dba#


文章转载自SOHU-DBA,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论