W MariaDB, SESSION_USER() jest synonimem USER() funkcjonować. Zwraca bieżącą nazwę użytkownika MariaDB i nazwę hosta, podaną podczas uwierzytelniania w MariaDB.
Składnia
Składnia wygląda tak:
SESSION_USER() Żadne argumenty nie są wymagane ani akceptowane.
Przykład
Oto przykład do zademonstrowania:
SELECT SESSION_USER(); Wynik:
+------------------+ | SESSION_USER() | +------------------+ | example@sqldat.com | +------------------+
SESSION_USER() vs CURRENT_USER()
Jest też inna funkcja o nazwie CURRENT_USER() to robi podobną rzecz. Jednak nie zawsze zwraca ten sam wynik, co SESSION_USER() .
Na przykład, jeśli łączymy się za pomocą anonymous :
mariadb --user="anonymous"
Następnie uruchom SESSION_USER() i CURRENT_USER() :
SELECT
SESSION_USER(),
CURRENT_USER; Wynik:
+---------------------+--------------+ | SESSION_USER() | CURRENT_USER | +---------------------+--------------+ | example@sqldat.com | @localhost | +---------------------+--------------+
Jeśli jednak wrócimy do poprzedniej sesji (w oryginalnym oknie terminala), każda funkcja zwróci te same wyniki:
SELECT
SESSION_USER(),
CURRENT_USER; Wynik:
+------------------+------------------+ | SESSION_USER() | CURRENT_USER | +------------------+------------------+ | example@sqldat.com | example@sqldat.com | +------------------+------------------+
Żadne argumenty nie są akceptowane
Przekazywanie dowolnych argumentów do SESSION_USER() powoduje błąd:
SELECT SESSION_USER(123); Wynik:
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
Wyrażenia przy użyciu SESSION_USER() funkcja (lub USER() i SYSTEM_USER() ) nie są bezpieczne dla replikacji na poziomie instrukcji.