列出 MariaDB 的所有用户

H. *_*uch 1 mariadb

如何列出 MariaDB 中的所有用户?

\n

互联网上充满了

\n
SELECT user FROM mysql.user;\n
Run Code Online (Sandbox Code Playgroud)\n

在其所有变体中,但这不适用于 MariaDB(如果重要的话,我使用的是版本 10.5.19),而是会产生错误(使用 root 权限运行):

\n
ERROR 1356 (HY000): View \'mysql.user\' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them\n
Run Code Online (Sandbox Code Playgroud)\n

我发现只有一条评论有点帮助:/sf/answers/4538907831/

\n
\n

MariaDB-10.4+mysql.user是一个视图而不是一个表。

\n

[\xe2\x80\xa6] 一定要检查官方文档。

\n
\n

重点是,我确实检查了官方文档,但它似乎默默地假设您已经知道您的用户名。我没有找到任何关于如何首先获取这些信息的提及,即如何仅显示用户列表。

\n

Esa*_*nen 6

mysql.user 表的官方文档(Google 的第一个结果mysql.user site:https://mariadb.com/kb/)有你的答案:

在 MariaDB 10.4 及更高版本中,该mysql.global_priv已替换了该mysql.user表,并且mysql.user应该被视为已过时。现在它是为了与旧应用程序和监控脚本兼容而创建的视图mysql.global_priv新工具应该使用INFORMATION_SCHEMA表格。

因此,为了向后兼容,您仍然可以使用:

SELECT User FROM mysql.global_priv;
Run Code Online (Sandbox Code Playgroud)

这也可能有用:

SELECT GRANTEE 
FROM INFORMATION_SCHEMA.USER_PRIVILEGES 
GROUP BY GRANTEE;
Run Code Online (Sandbox Code Playgroud)