CURRENT_USER, CURRENT_USER 认证的用户名和主机名

MySQL 中 CURRENT_USER 和 CURRENT_USER() 函数功能一样,返回服务器用于验证当前客户端的 MySQL 帐户的用户名和主机名组合。此帐户决定您的访问权限。返回值是 utf8 字符集中的字符串。

CURRENT_USER() 的值可以不同于 USER() 的值。例如:

mysql> SELECT USER(); 
+------------------+
| USER()           |
+------------------+
| davida@localhost |
+------------------+
1 row in set (0.04 sec)

mysql> SELECT CURRENT_USER();
+----------------+
| USER()         |
+----------------+
| @localhost     |
+----------------+
1 row in set (0.04 sec)

该示例说明,尽管客户端指定的用户名为Davida(由User()函数的值指示),但服务器使用匿名用户帐户(从CURRENT_USER()值的空用户名部分可以看出)对客户端进行身份验证。

可能发生这种情况的一种方式是,在 grant 表中没有列出 Davida 的帐户。

关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号