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