有没有办法知道你在mysql中的当前用户名?

时间:2013-10-13 21:05:08

标签: mysql

我想知道是否有办法让mysql查询返回发出查询的用户的用户名。

这可能吗?

8 个答案:

答案 0 :(得分:67)

尝试运行

SELECT USER();

SELECT CURRENT_USER();

有时可能会有所不同,USER()将通过您尝试进行身份验证的登录信息返回,CURRENT_USER()将返回您实际允许进行身份验证的方式。

答案 1 :(得分:63)

尝试使用CURRENT_USER()功能。这将返回MySQL用于验证客户端连接的用户名。这个用户名决定了您的权限。

这可能与客户端发送给MySQL的用户名不同(例如,即使您发送了用户名,MySQL也可能使用匿名帐户对您的客户端进行身份验证)。如果您想要连接时客户端发送给MySQL的用户名,请使用USER()函数。

该值表示您在连接服务器时指定的用户名以及您连接的客户端主机。该值可以与CURRENT_USER()的值不同。

http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_current-user

答案 2 :(得分:16)

使用此查询:

SELECT USER();

或者

SELECT CURRENT_USER;

答案 3 :(得分:7)

您可以使用:

SELECT USER();

SELECT CURRENT_USER();

在此处查看更多http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_current-user

答案 4 :(得分:2)

打印使用数据库的当前用户

select user();

select current_user();

答案 5 :(得分:2)

您还可以使用: MySQL的>从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                     |
+---------------+-------------------------------+

答案 6 :(得分:0)

您可以在MySQL中使用CURRENT_USER()函数找到当前用户名。

例如:  SELECT CURRENT_USER();

但是CURRENT_USER()不会总是返回登录的用户。因此,如果您想拥有登录用户,请改用SESSION_USER()

答案 7 :(得分:0)

我需要这样一个功能,我使用了 CURRENT_USER() 但这给了我全局管理员用户,即使我在连接到数据库时更改了查询用户名,每个查询也恰好相同。 显然,这在我正在寻找的用例中是无用的。 然后我使用了 USER() ,它给了我发起查询的连接字符串的用户名。 如果我理解这个问题,这就是这个人想要的通俗易懂的语言。就我而言,我在触发器中使用它来跟踪对事务表中的行所做的更改。