Dans MariaDB, SYSTEM_USER()
est un synonyme de USER()
une fonction. Il renvoie le nom d'utilisateur et le nom d'hôte MariaDB actuels, donnés lors de l'authentification auprès de MariaDB.
Syntaxe
La syntaxe ressemble à ceci :
SYSTEM_USER()
Aucun argument n'est requis ou accepté.
Exemple
Voici un exemple pour illustrer :
SELECT SYSTEM_USER();
Résultat :
+------------------+ | SYSTEM_USER() | +------------------+ | [email protected] | +------------------+
SYSTEM_USER()
contre CURRENT_USER()
Il existe également une autre fonction appelée CURRENT_USER()
qui fait une chose similaire. Cependant, il ne renvoie pas toujours le même résultat que SYSTEM_USER()
.
Par exemple, si nous nous connectons en utilisant anonymous
:
mariadb --user="anonymous"
Ensuite, exécutez SYSTEM_USER()
et CURRENT_USER()
:
SELECT
SYSTEM_USER(),
CURRENT_USER;
Résultat :
+---------------------+--------------+ | SYSTEM_USER() | CURRENT_USER | +---------------------+--------------+ | [email protected] | @localhost | +---------------------+--------------+
Mais si nous revenons à notre session précédente (dans la fenêtre de terminal d'origine), chaque fonction renvoie les mêmes résultats :
SELECT
SYSTEM_USER(),
CURRENT_USER;
Résultat :
+------------------+------------------+ | SYSTEM_USER() | CURRENT_USER | +------------------+------------------+ | [email protected] | [email protected] | +------------------+------------------+
Aucun argument n'est accepté
Passer tous les arguments à SYSTEM_USER()
génère une erreur :
SELECT SYSTEM_USER(123);
Résultat :
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
Instructions utilisant SYSTEM_USER()
fonction (ou USER()
et SESSION_USER()
) ne sont pas sûrs pour la réplication au niveau de l'instruction.