如何从 MySQL/Mariadb 获取用户 ID?

Posted

技术标签:

【中文标题】如何从 MySQL/Mariadb 获取用户 ID?【英文标题】:How to get the user ID from MySQL/Maria DB? 【发布时间】:2019-12-05 20:57:46 【问题描述】:

例如,在 PostgreSQL 中,查询 SELECT * FROM pg_user 返回 usesysid 列,您可以在其中查看用户 ID。所以我可以通过这个ID从这个表中获取最旧/最新的用户。

如何在 mysql 和 Maria DB 中做同样的事情?

我很惊讶在任何驱动程序中都没有显示每个用户的创建日期的字段。

【问题讨论】:

MySQL/MariaDB“用户”和操作系统“用户”之间不一定有任何关系。 【参考方案1】:

列出用户应该很简单:

select * from mysql.user

user 列为您提供用户 ID。结合host,这是每个帐户的唯一标识符。

Documentation for MariaDB.

Documentation for MySQL.

但请注意,MySQL / MariaDB 不会跟踪用户的创建日期。一种解决方案是在users 表中添加一个默认为当前日期的自定义列:

ALTER TABLE mysql.users ADD date_created TIMESTAMP DEFAULT CURRENT_TIMESTAMP;

【讨论】:

修改系统表总是一个坏主意,这可能会导致意外行为。在最近版本的 MariaDB 和 MySQL 中,权限存储在 globals_priv 中,而 mysql.user 是一个视图。

以上是关于如何从 MySQL/Mariadb 获取用户 ID?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 MySQL/MariaDB 中的二进制列格式化 uuid 字符串

哪种方法可以更快地使用 PHP/Laravel 从 MySQL/MariaDB 获取所有 POI

如何在 MySQL/MariaDB 中创建与 root 具有相同权限的用户? [关闭]

无法从 information_schema (MySQL/MariaDB) 访问列名

如何MySQL和MariaDB数据库修改root密码

如何在 MySQL/MariaDB 中加入两个巨大的表?