CURRENT_USER

CURRENT_USER()

Devuelve el nombre de usuario y el del host para el que está autentificada la conexión actual. Este valor corresponde a la cuenta que se usa para evaluar los privilegios de acceso. Puede ser diferente del valor de USER().

mysql> SELECT USER();
        -> 'davida@localhost'
mysql> SELECT * FROM mysql.user;
        -> ERROR 1044: Access denied for user: '@localhost' to database 'mysql'
mysql> SELECT CURRENT_USER();
        -> '@localhost'

El ejemplo ilustra que aunque el cliente ha especificado un nombre de usuario 'davida' (como indica el valor de la función USER(), el servidor autenfificó al cliente usando una cuenta de usuario anónima (como se ve por la parte del nombre de usuario vacía del valor CURRENT_USER()). Un modo en el que puede ocurrir esto es que no exista una cuenta en las tablas de concesiones (grant) para 'davida'.