Dans MariaDB, SESSION_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 :
SESSION_USER() Aucun argument n'est requis ou accepté.
Exemple
Voici un exemple pour illustrer :
SELECT SESSION_USER(); Résultat :
+------------------+ | SESSION_USER() | +------------------+ | example@sqldat.com | +------------------+
SESSION_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 SESSION_USER() .
Par exemple, si nous nous connectons en utilisant anonymous :
mariadb --user="anonymous"
Ensuite, exécutez SESSION_USER() et CURRENT_USER() :
SELECT
SESSION_USER(),
CURRENT_USER; Résultat :
+---------------------+--------------+ | SESSION_USER() | CURRENT_USER | +---------------------+--------------+ | example@sqldat.com | @localhost | +---------------------+--------------+
Cependant, 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
SESSION_USER(),
CURRENT_USER; Résultat :
+------------------+------------------+ | SESSION_USER() | CURRENT_USER | +------------------+------------------+ | example@sqldat.com | example@sqldat.com | +------------------+------------------+
Aucun argument n'est accepté
Passer tous les arguments à SESSION_USER() génère une erreur :
SELECT SESSION_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 SESSION_USER() fonction (ou USER() et SYSTEM_USER() ) ne sont pas sûrs pour la réplication au niveau de l'instruction.