In MariaDB SESSION_USER() ist ein Synonym für USER() Funktion. Es gibt den aktuellen MariaDB-Benutzernamen und Hostnamen zurück, die bei der Authentifizierung bei MariaDB angegeben wurden.
Syntax
Die Syntax lautet wie folgt:
SESSION_USER() Es sind keine Argumente erforderlich oder akzeptiert.
Beispiel
Hier ist ein Beispiel zur Veranschaulichung:
SELECT SESSION_USER(); Ergebnis:
+------------------+ | SESSION_USER() | +------------------+ | example@sqldat.com | +------------------+
SESSION_USER() vs CURRENT_USER()
Es gibt auch eine andere Funktion namens CURRENT_USER() das macht ähnliches. Es gibt jedoch nicht immer das gleiche Ergebnis wie SESSION_USER() zurück .
Zum Beispiel, wenn wir uns mit anonymous verbinden :
mariadb --user="anonymous"
Führen Sie dann SESSION_USER() aus und CURRENT_USER() :
SELECT
SESSION_USER(),
CURRENT_USER; Ergebnis:
+---------------------+--------------+ | SESSION_USER() | CURRENT_USER | +---------------------+--------------+ | example@sqldat.com | @localhost | +---------------------+--------------+
Wenn wir jedoch zu unserer vorherigen Sitzung (im ursprünglichen Terminalfenster) zurückspringen, gibt jede Funktion dieselben Ergebnisse zurück:
SELECT
SESSION_USER(),
CURRENT_USER; Ergebnis:
+------------------+------------------+ | SESSION_USER() | CURRENT_USER | +------------------+------------------+ | example@sqldat.com | example@sqldat.com | +------------------+------------------+
Es werden keine Argumente akzeptiert
Übergeben aller Argumente an SESSION_USER() führt zu einem Fehler:
SELECT SESSION_USER(123); Ergebnis:
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
Anweisungen mit SESSION_USER() Funktion (oder USER() und SYSTEM_USER() ) sind für die Replikation auf Anweisungsebene nicht sicher.