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

MariaDB SYSTEM_USER() explicado

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()    |
+------------------+
| [email protected] |
+------------------+

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 |
+---------------------+--------------+
| [email protected] | @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     |
+------------------+------------------+
| [email protected] | [email protected] |
+------------------+------------------+

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.