2010-05-04 4 views
22

Есть ли whoami-подобная функция в mysql?mysql: whoami?

Я подключаюсь к командной строке mysql с удаленного хоста. Я не уверен, разрешает ли мой ip-адрес доменное имя или нет. Я хотел бы увидеть что-то вроде

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

или

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

ответ

44

Используйте CURRENT_USER и/или USER функции:

SELECT CURRENT_USER(); 

SELECT USER(); 

Помещенный в ближайшее время, CURRENT_USER показывает, кто вы являются удостоверяются как, в то время как USER шоу, которые вы пытались Идентифицироваться.

Для получения дополнительной информации см. the MySQL manual.

+0

Хороший улов, и вы, конечно, правы. Ответ обновляется. –

+0

Когда пользователь 'USER' будет отличаться от' CURRENT_USER'? Похоже, что если бы они были разными, вам пришлось бы иметь неудачную аутентификацию, которая в этом случае, как бы вы выдали команду в первую очередь? – user151841

+1

В ответе есть несколько случаев, задокументированных руководством MySQL. Вы можете пройти аутентификацию как анонимный пользователь, хотя вы указали пользователя, и в этом случае 'USER()' вернет то, что вы аутентифицировали, поскольку 'CURRENT_USER()' будет возвращать анонимную учетную запись (т. Е. Пустое имя пользователя). Кроме того, в хранимых процедурах 'CURRENT_USER()' возвращает пользователя, который создал SP, или invoker, если он определен с помощью функции SQL SECURITY INVOKER. В триггерах и событиях 'CURRENT_USER()' всегда возвращает пользователя, создавшего объект. –

-6

Просто сделать ...

select user,host from mysql.user; 

Если показать вам то, что вы хотите.

+0

не будет работать, если у вас нет соответствующих субсидий. –

17

Если вы используете mysql утилит командной строки, то попробуйте \s команды:

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

** Этот ответ требует больше голосов **. – naomik