I MariaDB, SYSTEM_USER()
er et synonym for USER()
fungere. Det returnerer det aktuelle MariaDB-brugernavn og værtsnavn, givet ved godkendelse til MariaDB.
Syntaks
Syntaksen ser sådan ud:
SYSTEM_USER()
Ingen argumenter er påkrævet eller accepteret.
Eksempel
Her er et eksempel til demonstration:
SELECT SYSTEM_USER();
Resultat:
+------------------+ | SYSTEM_USER() | +------------------+ | [email protected] | +------------------+
SYSTEM_USER()
vs CURRENT_USER()
Der er også en anden funktion kaldet CURRENT_USER()
der gør noget lignende. Det returnerer dog ikke altid det samme resultat som SYSTEM_USER()
.
For eksempel, hvis vi forbinder ved hjælp af anonymous
:
mariadb --user="anonymous"
Kør derefter SYSTEM_USER()
og CURRENT_USER()
:
SELECT
SYSTEM_USER(),
CURRENT_USER;
Resultat:
+---------------------+--------------+ | SYSTEM_USER() | CURRENT_USER | +---------------------+--------------+ | [email protected] | @localhost | +---------------------+--------------+
Men hvis vi hopper tilbage til vores forrige session (i det oprindelige terminalvindue), returnerer hver funktion de samme resultater:
SELECT
SYSTEM_USER(),
CURRENT_USER;
Resultat:
+------------------+------------------+ | SYSTEM_USER() | CURRENT_USER | +------------------+------------------+ | [email protected] | [email protected] | +------------------+------------------+
Ingen argumenter accepteres
Sender eventuelle argumenter til SYSTEM_USER()
resulterer i en fejl:
SELECT SYSTEM_USER(123);
Resultat:
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
Udsagn ved hjælp af SYSTEM_USER()
funktion (eller USER()
og SESSION_USER()
) er ikke sikre til replikering på sætningsniveau.