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.