In MariaDB, SESSION_USER() is een synoniem voor de USER() functie. Het retourneert de huidige MariaDB-gebruikersnaam en hostnaam, gegeven bij authenticatie bij MariaDB.
Syntaxis
De syntaxis gaat als volgt:
SESSION_USER() Er zijn geen argumenten vereist of geaccepteerd.
Voorbeeld
Hier is een voorbeeld om te demonstreren:
SELECT SESSION_USER(); Resultaat:
+------------------+ | SESSION_USER() | +------------------+ | example@sqldat.com | +------------------+
SESSION_USER() vs CURRENT_USER()
Er is ook een andere functie genaamd CURRENT_USER() dat doet iets soortgelijks. Het geeft echter niet altijd hetzelfde resultaat als SESSION_USER() .
Als we bijvoorbeeld verbinding maken via anonymous :
mariadb --user="anonymous"
Voer vervolgens SESSION_USER() . uit en CURRENT_USER() :
SELECT
SESSION_USER(),
CURRENT_USER; Resultaat:
+---------------------+--------------+ | SESSION_USER() | CURRENT_USER | +---------------------+--------------+ | example@sqldat.com | @localhost | +---------------------+--------------+
Als we echter teruggaan naar onze vorige sessie (in het oorspronkelijke terminalvenster), geeft elke functie dezelfde resultaten:
SELECT
SESSION_USER(),
CURRENT_USER; Resultaat:
+------------------+------------------+ | SESSION_USER() | CURRENT_USER | +------------------+------------------+ | example@sqldat.com | example@sqldat.com | +------------------+------------------+
Er worden geen argumenten geaccepteerd
Argumenten doorgeven aan SESSION_USER() resulteert in een fout:
SELECT SESSION_USER(123); Resultaat:
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
Verklaringen met de SESSION_USER() functie (of USER() en SYSTEM_USER() ) zijn niet veilig voor replicatie op instructieniveau.