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

Explicación de MariaDB SESSION_USER()

En MariaDB, SESSION_USER() es un sinónimo de USER() función. Devuelve el nombre de usuario y el nombre de host actuales de MariaDB, proporcionados al autenticarse en MariaDB.

Sintaxis

La sintaxis es así:

SESSION_USER()

No se requieren ni se aceptan argumentos.

Ejemplo

Aquí hay un ejemplo para demostrarlo:

SELECT SESSION_USER();

Resultado:

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

SESSION_USER() frente a CURRENT_USER()

También hay otra función llamada CURRENT_USER() que hace algo similar. Sin embargo, no siempre devuelve el mismo resultado que SESSION_USER() .

Por ejemplo, si nos conectamos usando anonymous :

mariadb --user="anonymous"

Luego ejecuta SESSION_USER() y CURRENT_USER() :

SELECT 
    SESSION_USER(),
    CURRENT_USER;

Resultado:

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

Sin embargo, si volvemos a nuestra sesión anterior (en la ventana de terminal original), cada función devuelve los mismos resultados:

SELECT 
    SESSION_USER(),
    CURRENT_USER;

Resultado:

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

No se aceptan argumentos

Pasar argumentos a SESSION_USER() da como resultado un error:

SELECT SESSION_USER(123);

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 '123)' at line 1

Declaraciones usando SESSION_USER() función (o USER() y SYSTEM_USER() ) no son seguros para la replicación a nivel de instrucción.