In MariaDB, SYSTEM_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:
SYSTEM_USER() Es sind keine Argumente erforderlich oder akzeptiert.
Beispiel
Hier ist ein Beispiel zur Veranschaulichung:
SELECT SYSTEM_USER(); Ergebnis:
+------------------+ | SYSTEM_USER() | +------------------+ | example@sqldat.com | +------------------+
SYSTEM_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 SYSTEM_USER() zurück .
Zum Beispiel, wenn wir uns mit anonymous verbinden :
mariadb --user="anonymous"
Führen Sie dann SYSTEM_USER() aus und CURRENT_USER() :
SELECT
SYSTEM_USER(),
CURRENT_USER; Ergebnis:
+---------------------+--------------+ | SYSTEM_USER() | CURRENT_USER | +---------------------+--------------+ | example@sqldat.com | @localhost | +---------------------+--------------+
Aber wenn wir zu unserer vorherigen Sitzung (im ursprünglichen Terminalfenster) zurückspringen, gibt jede Funktion dieselben Ergebnisse zurück:
SELECT
SYSTEM_USER(),
CURRENT_USER; Ergebnis:
+------------------+------------------+ | SYSTEM_USER() | CURRENT_USER | +------------------+------------------+ | example@sqldat.com | example@sqldat.com | +------------------+------------------+
Es werden keine Argumente akzeptiert
Übergeben aller Argumente an SYSTEM_USER() führt zu einem Fehler:
SELECT SYSTEM_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 dem SYSTEM_USER() Funktion (oder USER() und SESSION_USER() ) sind für die Replikation auf Anweisungsebene nicht sicher.