sql >> Base de Datos >  >> RDS >> MariaDB

MariaDB CURRENT_USER() explicado

En MariaDB, CURRENT_USER() es una función integrada que devuelve la combinación de nombre de usuario y nombre de host para la cuenta de MariaDB que el servidor usó para autenticar al cliente actual.

Sintaxis

La función se puede llamar con o sin paréntesis:

CURRENT_USER
CURRENT_USER()

No se requieren ni se aceptan argumentos.

Ejemplo

Aquí hay un ejemplo para demostrarlo:

SELECT CURRENT_USER();

Resultado:

+------------------+
| CURRENT_USER()   |
+------------------+
| [email protected] |
+------------------+

Sin paréntesis

Como se mencionó, el CURRENT_USER() La función se puede llamar con o sin paréntesis.

Aquí hay un ejemplo sin paréntesis:

SELECT CURRENT_USER;

Resultado:

+------------------+
| CURRENT_USER     |
+------------------+
| [email protected] |
+------------------+

Mismo resultado.

Usuario anónimo

Aquí hay un ejemplo de lo que sucede cuando se conecta como anónimo.

Conéctate usando anonymous :

mariadb --user="anonymous"

Ejecute CURRENT_USER :

SELECT CURRENT_USER;

Resultado:

+--------------+
| CURRENT_USER |
+--------------+
| @localhost   |
+--------------+

CURRENT_USER() vs USER()

El CURRENT_USER() la función no siempre devuelve el mismo resultado que USER() función (y sus sinónimos SYSTEM_USER() y SESSION_USER() ).

Ejemplo:

SELECT 
    CURRENT_USER,
    USER(),
    SYSTEM_USER(),
    SESSION_USER();

Resultado:

+--------------+---------------------+---------------------+---------------------+
| CURRENT_USER | USER()              | SYSTEM_USER()       | SESSION_USER()      |
+--------------+---------------------+---------------------+---------------------+
| @localhost   | [email protected] | [email protected] | [email protected] |
+--------------+---------------------+---------------------+---------------------+

No se aceptan argumentos

Pasar cualquier argumento a CURRENT_USER() da como resultado un error:

SELECT CURRENT_USER(1);

Resultado:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1)' at line 1