В MariaDB, SESSION_USER()
е синоним на USER()
функция. Връща текущото потребителско име на MariaDB и име на хост, дадени при удостоверяване на MariaDB.
Синтаксис
Синтаксисът е така:
SESSION_USER()
Не се изискват или приемат аргументи.
Пример
Ето пример за демонстрация:
SELECT SESSION_USER();
Резултат:
+------------------+ | SESSION_USER() | +------------------+ | [email protected] | +------------------+
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 | +---------------------+--------------+ | [email protected] | @localhost | +---------------------+--------------+
Въпреки това, ако се върнем към предишната ни сесия (в оригиналния прозорец на терминала), всяка функция връща същите резултати:
SELECT
SESSION_USER(),
CURRENT_USER;
Резултат:
+------------------+------------------+ | SESSION_USER() | CURRENT_USER | +------------------+------------------+ | [email protected] | [email protected] | +------------------+------------------+
Не се приемат аргументи
Подаване на всякакви аргументи към 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()
) не са безопасни за репликация на ниво израз.