107 votes

Y a-t-il un moyen de connaître votre nom d'utilisateur actuel dans mysql ?

Je voudrais savoir s'il existe un moyen pour une requête mysql de renvoyer le nom d'utilisateur de l'utilisateur qui lance la requête.

Est-ce possible?

3voto

heisenbug47 Points 136

Vous pouvez trouver le nom d'utilisateur actuel avec la fonction CURRENT_USER() en MySQL.

Par exemple: SELECT CURRENT_USER();

Mais CURRENT_USER() ne renverra pas toujours l'utilisateur connecté. Donc si vous voulez avoir l'utilisateur connecté, alors utilisez plutôt SESSION_USER().

2voto

Ashish Karpe Points 857

Vous pouvez également utiliser : mysql> sélectionner utilisateur,hôte de mysql.utilisateur;

+---------------+-------------------------------+
| utilisateur   | hôte                          |
+---------------+-------------------------------+
| fkernel       | %                             |
| nagios        | %                             |
| lecture seule | %                             |
| réplicant     | %                             |
| reporting     | %                             |
| reporting_ro  | %                             |
| nagios        | xx.xx.xx.xx                 |
| haproxy_root  | xx.xx.xx.xx
| root          | 127.0.0.1                     |
| nagios        | localhost                     |
| root          | localhost                     |
+---------------+-------------------------------+

0voto

OneGhana Points 51

J'avais besoin d'une telle fonctionnalité et j'ai utilisé CURRENT_USER() mais cela m'a donné l'utilisateur Global Admin qui s'avère être le même pour chaque requête même si j'ai changé le nom d'utilisateur de la requête lors de la connexion à la base de données. Évidemment, cela est inutile dans le cas d'utilisation que je recherchais. Ensuite, j'ai utilisé USER() et cela m'a donné le nom d'utilisateur de la chaîne de connexion qui a initié la requête. Si j'ai bien compris la question, c'est ce que la personne voulait en termes simples. Dans mon cas, je l'ai utilisé dans un déclencheur pour suivre les modifications apportées aux lignes dans une table de transaction.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X