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 的帐户。