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