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에서 * your * 현재 사용자 이름 을 알 수있는 방법이 있습니까?"라는 질문에 맞지 않았습니다 . 대답은 "USER ()"였는데, "Returns the current MySQL user"( 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 |
+---------------+-------------------------------+
MySQL의 CURRENT_USER () 함수로 현재 사용자 이름을 찾을 수 있습니다.
예 :
SELECT CURRENT_USER();
그러나 CURRENT_USER()
항상 로그인 한 사용자를 반환하지는 않습니다. 따라서 로그인 한 사용자를 원할 경우 SESSION_USER()
대신 사용하십시오.