Я хотел бы знать, есть ли способ для запроса mysql вернуть имя пользователя, отправившего запрос.
Это возможно?
Я хотел бы знать, есть ли способ для запроса mysql вернуть имя пользователя, отправившего запрос.
Это возможно?
Ответы:
Попробуйте CURRENT_USER()
функцию. Это возвращает имя пользователя, которое MySQL использовал для аутентификации вашего клиентского соединения. Именно это имя пользователя определяет ваши привилегии.
Это может отличаться от имени пользователя, которое было отправлено MySQL клиентом (например, MySQL может использовать анонимную учетную запись для аутентификации вашего клиента, даже если вы отправили имя пользователя). Если вам нужно имя пользователя, которое клиент отправил в MySQL при подключении, используйте USER()
вместо этого функцию.
Значение указывает имя пользователя, которое вы указали при подключении к серверу, и клиентский хост, с которого вы подключились. Значение может отличаться от CURRENT_USER ().
http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_current-user
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CURRENT_USER()' at line 1
CURRENT_USER()
не ответил на вопрос «Есть ли способ узнать * ваше * текущее имя пользователя в mysql?». Ответ был «USER ()», который «возвращает текущего пользователя MySQL» ( dev.mysql.com/doc/refman/5.7/en/… ). Вам следует обновить свой ответ, чтобы он был более полным, он слишком короткий.
Попробуйте запустить либо
SELECT USER();
или
SELECT CURRENT_USER();
Иногда это может быть иначе, USER () вернет, какой логин вы пытались аутентифицировать, а CURRENT_USER () вернет, как вам фактически разрешили аутентифицироваться.
Ты можешь использовать:
SELECT USER();
или
SELECT CURRENT_USER();
Подробнее см. Http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_current-user
для печати текущего пользователя, который использует базу данных
select user();
или
select current_user();
Вы также можете использовать: mysql> select user, host from mysql.user;
+---------------+-------------------------------+
| user | host |
+---------------+-------------------------------+
| fkernel | % |
| nagios | % |
| readonly | % |
| replicant | % |
| reporting | % |
| reporting_ro | % |
| nagios | xx.xx.xx.xx |
| haproxy_root | xx.xx.xx.xx
| root | 127.0.0.1 |
| nagios | localhost |
| root | localhost |
+---------------+-------------------------------+
Вы можете найти текущее имя пользователя с помощью функции CURRENT_USER () в MySQL.
для Ex:
SELECT CURRENT_USER();
Но CURRENT_USER()
не всегда вернет авторизованного пользователя. Поэтому, если вы хотите, чтобы пользователь вошел в систему, используйте SESSION_USER()
вместо этого.