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() | +------------------+ | example@sqldat.com | +------------------+
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 | +---------------------+--------------+ | example@sqldat.com | @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 | +------------------+------------------+ | example@sqldat.com | example@sqldat.com | +------------------+------------------+
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.