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

关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号