MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

MariaDB SYSTEM_USER() erklärt

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.