V MariaDB, SYSTEM_USER() je synonymem pro USER() funkce. Vrátí aktuální uživatelské jméno MariaDB a název hostitele, které jste zadali při ověřování do MariaDB.
Syntaxe
Syntaxe vypadá takto:
SYSTEM_USER() Nejsou vyžadovány ani přijímány žádné argumenty.
Příklad
Zde je příklad k demonstraci:
SELECT SYSTEM_USER(); Výsledek:
+------------------+ | SYSTEM_USER() | +------------------+ | example@sqldat.com | +------------------+
SYSTEM_USER() vs CURRENT_USER()
Existuje také další funkce s názvem CURRENT_USER() to dělá podobnou věc. Ne vždy však vrátí stejný výsledek jako SYSTEM_USER() .
Pokud se například připojíme pomocí anonymous :
mariadb --user="anonymous"
Poté spusťte SYSTEM_USER() a CURRENT_USER() :
SELECT
SYSTEM_USER(),
CURRENT_USER; Výsledek:
+---------------------+--------------+ | SYSTEM_USER() | CURRENT_USER | +---------------------+--------------+ | example@sqldat.com | @localhost | +---------------------+--------------+
Pokud však přeskočíme zpět na naši předchozí relaci (v původním okně terminálu), každá funkce vrátí stejné výsledky:
SELECT
SYSTEM_USER(),
CURRENT_USER; Výsledek:
+------------------+------------------+ | SYSTEM_USER() | CURRENT_USER | +------------------+------------------+ | example@sqldat.com | example@sqldat.com | +------------------+------------------+
Nepřijímáme žádné argumenty
Předání jakýchkoli argumentů do SYSTEM_USER() výsledkem je chyba:
SELECT SYSTEM_USER(123); Výsledek:
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
Příkazy pomocí SYSTEM_USER() funkce (nebo USER() a SESSION_USER() ) nejsou bezpečné pro replikaci na úrovni příkazů.