Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mariadb 老用户还在吗?_Mariadb - Fatal编程技术网

Mariadb 老用户还在吗?

Mariadb 老用户还在吗?,mariadb,Mariadb,我在我的MariaDB服务器上发现了一个奇怪的现象(版本10.1.26-MariaDB-0+deb9u1) 很久以前我有一个用户XYZ,这个用户可能在某个时候被删除了。但是,我尝试使用此用户登录,并收到以下错误消息: mysqli_real_connect():(HY000/1275):服务器正在运行 --安全身份验证模式,但“XYZ”@“localhost”具有旧格式的密码;请将密码更改为新格式 为了确定,我尝试使用一个不存在的用户登录。例如,我尝试以NOTEXISTING登录,只是为了验证错

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

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

mysqli_real_connect():(HY000/1275):服务器正在运行 --安全身份验证模式,但“XYZ”@“localhost”具有旧格式的密码;请将密码更改为新格式

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

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

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

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

select * from mysql.user where user = 'XYZ';
=>空结果

grep -r XYZ /path_to_mysql_database_dir/mysql/
=>没有

我还尝试了“刷新权限”来重新加载用户表

你知道用户信息存储在哪里吗

更新


在尝试了各种方法,甚至在一个全新安装的系统上进行了测试之后,我得出结论,这一定是某种错误,因此我打开了一个错误报告:。欢迎任何其他想法。

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

从用户选择用户、主机、密码

| pm_demo          | localhost   | FFC3F585           |
| dist             | localhost   | A8900DDB           |
| ronly            | localhost   | 5208517A           |
| spent            | localhost   | 26B08F08           |
| test             | 1.2.3.4     | A40C6DCC           |
该“密码”实际上是明文密码的加密版本。这是“旧格式”,不太安全。新密码看起来更像

*A5280BD3F8C6BCC6537FCC3E113D794DD53534CC
还有其他身份验证机制。(我不知道您在身份验证的发展过程中处于何处。)


开发人员已经确认(我认为是错误的)错误消息是基于用户表哈希的故意行为


是的,我都知道。但是在
user
表中,正如我提到的,没有名为“XYZ”的用户,因此“show grants”以及“select…from user”不会返回任何内容。我已经验证了消息来自插件mysql_native_password(使用“默认身份验证插件”),它应该查询用户表。我得出结论,这一定是MariaDB中的一个错误,因为当我在用户表中更改任何内容时,错误的错误消息消失了(即删除或添加任何用户,或更改特定用户名)。如果我这样做,当我尝试以这个不存在的用户身份登录时,会收到正常的“拒绝访问”消息。@DanielMarschall-请参阅
FLUSH PRIVILEGES;
我不想听起来有失礼貌,但我做到了所有这一切,它也写在问题中
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)