老用户还在吗?

时间:2018-11-21 08:18:50

标签: mariadb

我在我的MariaDB服务器(版本10.1.26-MariaDB-0 + deb9u1)上发现了一种奇怪的现象

我很久以前曾经有一个用户XYZ,而这个用户可能在某个时候被删除了。但是,我尝试使用此用户登录,并且收到以下错误消息:

  

mysqli_real_connect():(HY000 / 1275):服务器正在运行   --secure-auth模式,但是'XYZ'@'localhost'具有旧格式的密码;请更改密码为新格式

请确定,我尝试使用不存在的用户登录。例如,我尝试以NOTEXISTING身份登录,只是为了验证错误消息的确不同。

  

mysqli_real_connect():(HY000 / 1045):用户被拒绝访问   'NOTEXISTING'@'localhost'(使用密码:是)

现在的问题是,旧用户信息存储在哪里?

该用户在mysql数据库中不存在:

select * from mysql.user where user = 'XYZ';

=>空结果

grep -r XYZ /path_to_mysql_database_dir/mysql/

=>没事

我还尝试了“ FLUSH PRIVILEGES”来重新加载用户表。

您是否知道用户信息的存储位置?

更新

尝试了各种事情,甚至在一个全新的已安装系统上进行了测试之后,我得出的结论是它一定是某种错误,因此我打开了一个错误报告:https://jira.mariadb.org/browse/MDEV-17789。任何其他想法都欢迎。

2 个答案:

答案 0 :(得分:0)

明文密码不会存储在任何地方。

SELECT user, host, password FROM user 可能提供类似的内容

| pm_demo          | localhost   | FFC3F585           |
| dist             | localhost   | A8900DDB           |
| ronly            | localhost   | 5208517A           |
| spent            | localhost   | 26B08F08           |
| test             | 1.2.3.4     | A40C6DCC           |

该“密码”实际上是纯文本密码的加密版本。这是“旧格式”,不是很安全。新密码看起来更像

*A5280BD3F8C6BCC6537FCC3E113D794DD53534CC

还有其他身份验证机制。 (我不知道您在身份验证的发展中处于什么位置。)

SELECT * FROM user WHERE user = 'xyz'\G
*************************** 1. row ***************************
                  Host: localhost
                  User: xyz
              Password: *6D800EA40C6DCC75BFF67DAB58D5D49FC5F8E568
           Select_priv: N
           Insert_priv: N
           Update_priv: N
           Delete_priv: N
           Create_priv: N
             Drop_priv: N
           Reload_priv: N
         Shutdown_priv: N
          Process_priv: N
             File_priv: N
            Grant_priv: N
...
          x509_subject: 
         max_questions: 0
           max_updates: 0
       max_connections: 0
  max_user_connections: 0
                plugin: mysql_native_password
 authentication_string: 
      password_expired: N
1 row in set (0.00 sec)


SHOW GRANTS FOR xyz@localhost;
+------------------------------------------------------------------------------------------------------------+
| Grants for xyz@localhost                                                                                   |
+------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'xyz'@'localhost' IDENTIFIED BY PASSWORD '*6D800EA40C6DCC75BFF67DAB58D5D49FC5F8E568' |
| GRANT ALL PRIVILEGES ON `xyz`.* TO 'xyz'@'localhost'                                                       |
+------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

答案 1 :(得分:0)

开发人员已根据用户表的哈希值确认错误消息(我认为是错误的)是故意行为。

https://jira.mariadb.org/plugins/servlet/mobile#issue/MDEV-17789