如何从 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 具有相同权限的用户? [关闭]