MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

MariaDB SESSION_USER() erklärt

In MariaDB SESSION_USER() ist ein Synonym für USER() Funktion. Es gibt den aktuellen MariaDB-Benutzernamen und Hostnamen zurück, die bei der Authentifizierung bei MariaDB angegeben wurden.

Syntax

Die Syntax lautet wie folgt:

SESSION_USER()

Es sind keine Argumente erforderlich oder akzeptiert.

Beispiel

Hier ist ein Beispiel zur Veranschaulichung:

SELECT SESSION_USER();

Ergebnis:

+------------------+
| SESSION_USER()   |
+------------------+
| [email protected] |
+------------------+

SESSION_USER() vs CURRENT_USER()

Es gibt auch eine andere Funktion namens CURRENT_USER() das macht ähnliches. Es gibt jedoch nicht immer das gleiche Ergebnis wie SESSION_USER() zurück .

Zum Beispiel, wenn wir uns mit anonymous verbinden :

mariadb --user="anonymous"

Führen Sie dann SESSION_USER() aus und CURRENT_USER() :

SELECT 
    SESSION_USER(),
    CURRENT_USER;

Ergebnis:

+---------------------+--------------+
| SESSION_USER()      | CURRENT_USER |
+---------------------+--------------+
| [email protected] | @localhost   |
+---------------------+--------------+

Wenn wir jedoch zu unserer vorherigen Sitzung (im ursprünglichen Terminalfenster) zurückspringen, gibt jede Funktion dieselben Ergebnisse zurück:

SELECT 
    SESSION_USER(),
    CURRENT_USER;

Ergebnis:

+------------------+------------------+
| SESSION_USER()   | CURRENT_USER     |
+------------------+------------------+
| [email protected] | [email protected] |
+------------------+------------------+

Es werden keine Argumente akzeptiert

Übergeben aller Argumente an SESSION_USER() führt zu einem Fehler:

SELECT SESSION_USER(123);

Ergebnis:

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

Anweisungen mit SESSION_USER() Funktion (oder USER() und SYSTEM_USER() ) sind für die Replikation auf Anweisungsebene nicht sicher.