V MariaDB, SESSION_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:
SESSION_USER()
Nejsou vyžadovány ani přijímány žádné argumenty.
Příklad
Zde je příklad k demonstraci:
SELECT SESSION_USER();
Výsledek:
+------------------+ | SESSION_USER() | +------------------+ | [email protected] | +------------------+
SESSION_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 SESSION_USER()
.
Pokud se například připojíme pomocí anonymous
:
mariadb --user="anonymous"
Poté spusťte SESSION_USER()
a CURRENT_USER()
:
SELECT
SESSION_USER(),
CURRENT_USER;
Výsledek:
+---------------------+--------------+ | SESSION_USER() | CURRENT_USER | +---------------------+--------------+ | [email protected] | @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
SESSION_USER(),
CURRENT_USER;
Výsledek:
+------------------+------------------+ | SESSION_USER() | CURRENT_USER | +------------------+------------------+ | [email protected] | [email protected] | +------------------+------------------+
Nepřijímáme žádné argumenty
Předání jakýchkoli argumentů do SESSION_USER()
výsledkem je chyba:
SELECT SESSION_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í SESSION_USER()
funkce (nebo USER()
a SYSTEM_USER()
) nejsou bezpečné pro replikaci na úrovni příkazů.