2010-05-04 6 views
22

¿Hay una función tipo whoami en mysql?mysql: whoami?

Me estoy conectando a la línea de comandos mysql desde un host remoto. No estoy seguro si mi dirección IP se está resolviendo con un nombre de dominio o no. Me gustaría ver algo como

mysql> whoami; 
+----------------------------------+ 
| User  | Host     | 
+----------------------------------+ 
| username | resolved.hostname.com | 
+----------------------------------+ 
1 row in set (0.00 sec) 

o

mysql> whoami; 
+------------------------+ 
| User  | Host  | 
+------------------------+ 
| username | 22.66.88.44 | 
+------------------------+ 
1 row in set (0.00 sec) 

Respuesta

44

Use los CURRENT_USER y/o funciones: USER

SELECT CURRENT_USER(); 

SELECT USER(); 

Poner en breve, CURRENT_USER muestra que se está autenticar como, mientras USER espectáculos que se intentado a Autenticar como.

Consulte the MySQL manual para obtener más información.

+0

Buena captura, y tienes razón, por supuesto. La respuesta se actualiza ahora. –

+0

¿Cuándo 'USER' alguna vez sería diferente de' CURRENT_USER'? Parece que si fueran diferentes, habría tenido que haber fallado la autenticación, que en ese caso, ¿cómo se emitiría el comando en primer lugar? – user151841

+1

Hay varios casos, documentados por el manual de MySQL en el enlace en la respuesta. Podría terminar siendo autenticado como un usuario anónimo aunque haya especificado un usuario, en cuyo caso 'USER()' devolverá lo que autenticó mientras que 'CURRENT_USER()' devolverá una cuenta anónima (es decir, nombre de usuario vacío). Además, dentro de los procedimientos almacenados, 'CURRENT_USER()' devolverá al usuario que creó el SP, o el invocador si se define con una característica 'SQL SECURITY INVOCER'. En desencadenantes y eventos, 'CURRENT_USER()' siempre devuelve el usuario que creó el objeto. –

-6

Sólo hacer una ...

select user,host from mysql.user; 

usted debe mostrar lo que quiere.

+0

no funcionará si usted no tiene las subvenciones adecuadas. –

17

Si está utilizando la utilidad de línea de comandos mysql luego tratar \s comando:

mysql> \s 
-------------- 
mysql Ver 14.12 Distrib 5.0.67, for suse-linux-gnu (i686) using readline 5.2 

Connection id:   519 
Current database: 
Current user:   [email protected] 
......... 
Server version:   5.0.67 SUSE MySQL RPM 
......... 
+0

** Esta respuesta necesita más votos. ** – naomik