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