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() | +------------------+ | [email protected] | +------------------+
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 | +---------------------+--------------+ | [email protected] | @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 | +------------------+------------------+ | [email protected] | [email protected] | +------------------+------------------+
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å.