I MariaDB, SESSION_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:
SESSION_USER() Inga argument krävs eller accepteras.
Exempel
Här är ett exempel att visa:
SELECT SESSION_USER(); Resultat:
+------------------+ | SESSION_USER() | +------------------+ | example@sqldat.com | +------------------+
SESSION_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 SESSION_USER() .
Till exempel, om vi ansluter med anonymous :
mariadb --user="anonymous"
Kör sedan SESSION_USER() och CURRENT_USER() :
SELECT
SESSION_USER(),
CURRENT_USER; Resultat:
+---------------------+--------------+ | SESSION_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
SESSION_USER(),
CURRENT_USER; Resultat:
+------------------+------------------+ | SESSION_USER() | CURRENT_USER | +------------------+------------------+ | example@sqldat.com | example@sqldat.com | +------------------+------------------+
Inga argument accepteras
Skickar eventuella argument till SESSION_USER() resulterar i ett fel:
SELECT SESSION_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 SESSION_USER() funktion (eller USER() och SYSTEM_USER() ) är inte säkra för replikering på satsnivå.