En MariaDB, SYSTEM_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í:
SYSTEM_USER() No se requieren ni se aceptan argumentos.
Ejemplo
Aquí hay un ejemplo para demostrarlo:
SELECT SYSTEM_USER(); Resultado:
+------------------+ | SYSTEM_USER() | +------------------+ | example@sqldat.com | +------------------+
SYSTEM_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 SYSTEM_USER() .
Por ejemplo, si nos conectamos usando anonymous :
mariadb --user="anonymous"
Luego ejecute SYSTEM_USER() y CURRENT_USER() :
SELECT
SYSTEM_USER(),
CURRENT_USER; Resultado:
+---------------------+--------------+ | SYSTEM_USER() | CURRENT_USER | +---------------------+--------------+ | example@sqldat.com | @localhost | +---------------------+--------------+
Pero si volvemos a nuestra sesión anterior (en la ventana de terminal original), cada función devuelve los mismos resultados:
SELECT
SYSTEM_USER(),
CURRENT_USER; Resultado:
+------------------+------------------+ | SYSTEM_USER() | CURRENT_USER | +------------------+------------------+ | example@sqldat.com | example@sqldat.com | +------------------+------------------+
No se aceptan argumentos
Pasar cualquier argumento a SYSTEM_USER() da como resultado un error:
SELECT SYSTEM_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 que usan SYSTEM_USER() función (o USER() y SESSION_USER() ) no son seguros para la replicación a nivel de instrucción.