MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

MariaDB CURRENT_USER() expliqué

Dans MariaDB, CURRENT_USER() est une fonction intégrée qui renvoie la combinaison du nom d'utilisateur et du nom d'hôte pour le compte MariaDB que le serveur a utilisé pour authentifier le client actuel.

Syntaxe

La fonction peut être appelée avec ou sans les parenthèses :

CURRENT_USER
CURRENT_USER()

Aucun argument n'est requis ou accepté.

Exemple

Voici un exemple pour illustrer :

SELECT CURRENT_USER();

Résultat :

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

Sans parenthèses

Comme mentionné, le CURRENT_USER() La fonction peut être appelée avec ou sans parenthèses.

Voici un exemple sans parenthèses :

SELECT CURRENT_USER;

Résultat :

+------------------+
| CURRENT_USER     |
+------------------+
| [email protected] |
+------------------+

Même résultat.

Utilisateur anonyme

Voici un exemple de ce qui se passe lorsque vous êtes connecté en tant qu'anonyme.

Connectez-vous en utilisant anonymous :

mariadb --user="anonymous"

Exécutez CURRENT_USER :

SELECT CURRENT_USER;

Résultat :

+--------------+
| CURRENT_USER |
+--------------+
| @localhost   |
+--------------+

CURRENT_USER() vs USER()

Le CURRENT_USER() La fonction ne renvoie pas toujours le même résultat que USER() fonction (et ses synonymes SYSTEM_USER() et SESSION_USER() ).

Exemple :

SELECT 
    CURRENT_USER,
    USER(),
    SYSTEM_USER(),
    SESSION_USER();

Résultat :

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

Aucun argument n'est accepté

Passer tous les arguments à CURRENT_USER() génère une erreur :

SELECT CURRENT_USER(1);

Résultat :

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 '1)' at line 1