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