I MariaDB, SYSTEM_USER() är en synonym för USER() fungera. Den returnerar det nuvarande MariaDB-användarnamnet och värdnamnet, som ges vid autentisering till MariaDB.
Syntax
Syntaxen ser ut så här:
SYSTEM_USER() Inga argument krävs eller accepteras.
Exempel
Här är ett exempel att visa:
SELECT SYSTEM_USER(); Resultat:
+------------------+ | SYSTEM_USER() | +------------------+ | example@sqldat.com | +------------------+
SYSTEM_USER() kontra CURRENT_USER()
Det finns också en annan funktion som heter CURRENT_USER() som gör en liknande sak. Det returnerar dock inte alltid samma resultat som SYSTEM_USER() .
Till exempel, om vi ansluter med anonymous :
mariadb --user="anonymous"
Kör sedan SYSTEM_USER() och CURRENT_USER() :
SELECT
SYSTEM_USER(),
CURRENT_USER; Resultat:
+---------------------+--------------+ | SYSTEM_USER() | CURRENT_USER | +---------------------+--------------+ | example@sqldat.com | @localhost | +---------------------+--------------+
Men om vi hoppar tillbaka till vår tidigare session (i det ursprungliga terminalfönstret), returnerar varje funktion samma resultat:
SELECT
SYSTEM_USER(),
CURRENT_USER; Resultat:
+------------------+------------------+ | SYSTEM_USER() | CURRENT_USER | +------------------+------------------+ | example@sqldat.com | example@sqldat.com | +------------------+------------------+
Inga argument accepteras
Skickar eventuella argument till SYSTEM_USER() resulterar i ett fel:
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
Uttalanden som använder SYSTEM_USER() funktion (eller USER() och SESSION_USER() ) är inte säkra för replikering på satsnivå.