sql >> Database >  >> RDS >> MariaDB

MariaDB SYSTEM_USER() uitgelegd

In MariaDB, SYSTEM_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:

SYSTEM_USER()

Er zijn geen argumenten vereist of geaccepteerd.

Voorbeeld

Hier is een voorbeeld om te demonstreren:

SELECT SYSTEM_USER();

Resultaat:

+------------------+
| SYSTEM_USER()    |
+------------------+
| [email protected] |
+------------------+

SYSTEM_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 SYSTEM_USER() .

Als we bijvoorbeeld verbinding maken via anonymous :

mariadb --user="anonymous"

Voer vervolgens SYSTEM_USER() . uit en CURRENT_USER() :

SELECT 
    SYSTEM_USER(),
    CURRENT_USER;

Resultaat:

+---------------------+--------------+
| SYSTEM_USER()       | CURRENT_USER |
+---------------------+--------------+
| [email protected] | @localhost   |
+---------------------+--------------+

Maar als we teruggaan naar onze vorige sessie (in het oorspronkelijke terminalvenster), geeft elke functie dezelfde resultaten:

SELECT 
    SYSTEM_USER(),
    CURRENT_USER;

Resultaat:

+------------------+------------------+
| SYSTEM_USER()    | CURRENT_USER     |
+------------------+------------------+
| [email protected] | [email protected] |
+------------------+------------------+

Er worden geen argumenten geaccepteerd

Argumenten doorgeven aan SYSTEM_USER() resulteert in een fout:

SELECT SYSTEM_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 SYSTEM_USER() functie (of USER() en SESSION_USER() ) zijn niet veilig voor replicatie op instructieniveau.


  1. Afdrukken naar scherm in .sql-bestand postgres

  2. Verbinding maken met Oracle 12c Database vanuit Pentaho Data Integration (Kettle) Community Edition

  3. Hoe MySQL JDBC 08001 Databaseverbindingsfout op te lossen?

  4. Fout:Geen module met de naam psycopg2.extensions