В MariaDB, SESSION_USER() е синоним на USER() функция. Връща текущото потребителско име на MariaDB и име на хост, дадени при удостоверяване на MariaDB.
Синтаксис
Синтаксисът е така:
SESSION_USER() Не се изискват или приемат аргументи.
Пример
Ето пример за демонстрация:
SELECT SESSION_USER(); Резултат:
+------------------+ | SESSION_USER() | +------------------+ | example@sqldat.com | +------------------+
SESSION_USER() срещу CURRENT_USER()
Има и друга функция, наречена CURRENT_USER() това прави подобно нещо. Той обаче не винаги връща същия резултат като SESSION_USER() .
Например, ако се свържем с помощта на anonymous :
mariadb --user="anonymous"
След това стартирайте SESSION_USER() и CURRENT_USER() :
SELECT
SESSION_USER(),
CURRENT_USER; Резултат:
+---------------------+--------------+ | SESSION_USER() | CURRENT_USER | +---------------------+--------------+ | example@sqldat.com | @localhost | +---------------------+--------------+
Въпреки това, ако се върнем към предишната ни сесия (в оригиналния прозорец на терминала), всяка функция връща същите резултати:
SELECT
SESSION_USER(),
CURRENT_USER; Резултат:
+------------------+------------------+ | SESSION_USER() | CURRENT_USER | +------------------+------------------+ | example@sqldat.com | example@sqldat.com | +------------------+------------------+
Не се приемат аргументи
Подаване на всякакви аргументи към SESSION_USER() води до грешка:
SELECT SESSION_USER(123); Резултат:
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
Изявления, използващи SESSION_USER() функция (или USER() и SYSTEM_USER() ) не са безопасни за репликация на ниво израз.