sql >> Databasteknik >  >> RDS >> MariaDB

MariaDB SESSION_USER() Förklarad

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å.


  1. MySQL REPLACE() – Ersätt alla instanser av en delsträng med en annan sträng

  2. Hur går man med på samma bord, två gånger, i mysql?

  3. SQL-fråga för att sammanfoga kolumnvärden från flera rader i Oracle

  4. Funktioner vs lagrade procedurer