sql >> Databasteknik >  >> RDS >> MariaDB

MariaDB SYSTEM_USER() Förklarad

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

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 |
+---------------------+--------------+
| [email protected] | @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     |
+------------------+------------------+
| [email protected] | [email protected] |
+------------------+------------------+

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


  1. Hur säker är EnableWriteAheadLogging i samband med verklig användning och SQLite-dokumentation?

  2. Begränsning av främmande nyckel kan orsaka cykler eller flera kaskadvägar?

  3. Hur skapar jag en procedur i Oracle SQL Developer?

  4. Hur man hämtar data från databasen och visar dem som en ListView