MariaDB USER() Explained

In MariaDB, USER() is a built-in function that returns the current MariaDB user name and host name, given when authenticating to MariaDB.

Syntax

The syntax goes like this:

USER()

No arguments are required or accepted.

Example

Here’s an example to demonstrate:

SELECT USER();

Result:

+------------------+
| USER()           |
+------------------+
| barney@localhost |
+------------------+

USER() vs CURRENT_USER()

The USER() function doesn’t always return the same result as the CURRENT_USER() function.

For example, if we connect using anonymous:

mariadb --user="anonymous"

Then run USER() and CURRENT_USER():

SELECT 
    USER(),
    CURRENT_USER;

Result:

+---------------------+--------------+
| USER()              | CURRENT_USER |
+---------------------+--------------+
| anonymous@localhost | @localhost   |
+---------------------+--------------+

No Arguments are Accepted

Passing any arguments to USER() results in an error:

SELECT USER(123);

Result:

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

Statements using the USER() function or one of its synonyms (SYSTEM_USER() and SESSION_USER()) are not safe for statement level replication.