如何查看当前用户_mysql user信息查询

1次阅读

user()返回客户端声明的用户名和主机(如’admin@192.168.1.100’),current_user()返回权限系统实际认证的账号(如’admin@%’);show grants显示当前用户权限,select database()和select version(), user(), current_user()可辅助诊断连接与权限问题。

如何查看当前用户_mysql user信息查询

mysql 中查看当前登录用户的信息,最直接的方式是使用内置函数 USER()CURRENT_USER(),它们返回略有不同的内容,适用于不同场景。

USER():显示你“自称”的用户名和主机

这个函数返回客户端连接时提供的用户名和主机地址(即你用什么账号、从哪台机器连进来的)。

执行:

SELECT USER();

结果类似:
‘admin@192.168.1.100’
说明你是以 admin 身份、从 IP 192.168.1.100 连入的——但不保证该账号真实存在或有权限。

CURRENT_USER():显示 MySQL 实际认证的用户

这个函数返回服务器根据权限系统匹配到的、真正生效的账号(即授权表中定义的那个 user@host)。

执行:

SELECT CURRENT_USER();

结果可能为:
‘admin@%’
说明 MySQL 实际是按 admin@% 这条记录来验证你的身份和权限的。如果返回 ‘@’,代表你用的是匿名用户,需警惕权限配置问题。

查看当前用户的权限列表

知道是谁之后,常需确认能做什么:

  • 查当前用户所有权限:SHOW GRANTS;
  • 查指定用户权限(需有 SUPER 或 SELECT ON mysql.* 权限):SHOW GRANTS for ‘username’@’host’;

注意:SHOW GRANTS 不加 FOR 时,默认显示当前 CURRENT_USER() 的权限,不是 USER() 的。

补充:快速看用户归属与权限上下文

如果想进一步确认当前会话环境,可结合查询:

  • 当前数据库SELECT DATABASE();
  • MySQL 版本及当前用户标识:SELECT VERSION(), USER(), CURRENT_USER();

这些组合能帮你快速定位权限异常、连接错账号、或 host 匹配偏差等问题。

text=ZqhQzanResources