네, MySQL에서 현재 접속 중인 사용자 이름을 확인하는 방법이 있습니다. 바로 CURRENT_USER() 함수를 사용하는 것입니다.
CURRENT_USER() 함수로 현재 사용자 확인하기
CURRENT_USER() 함수는 클라이언트 연결을 인증하는 데 사용된 사용자 계정을 반환합니다. 즉, MySQL 서버가 실제로 인증에 사용한 계정 정보를 알려주는 것입니다.
다음 쿼리를 실행해 보세요.
mysql> select CURRENT_USER();
실행 결과는 다음과 같습니다.
+----------------+ | CURRENT_USER() | +----------------+ | root@% | +----------------+ 1 row in set (0.00 sec)
USER() 함수로 현재 사용자 확인하기
또 다른 방법으로 MySQL의 USER() 함수를 사용할 수도 있습니다. 이 함수는 클라이언트가 실제로 로그인할 때 지정한 사용자 이름과 호스트를 반환한다는 점이 CURRENT_USER()와 약간 다릅니다.
쿼리는 다음과 같습니다.
mysql> select user();
실행 결과는 다음과 같습니다.
+----------------+ | user() | +----------------+ | root@localhost | +----------------+ 1 row in set (0.00 sec)
CURRENT_USER()와 USER()의 차이점
두 함수의 결과가 위 예시처럼 다르게 나타나는 이유는 반환하는 정보의 성격이 다르기 때문입니다.
CURRENT_USER()는 서버가 연결을 인증할 때 실제로 사용한 계정(예: 익명 사용자나 와일드카드 호스트 매칭 결과)을 반환합니다. 반면 USER()는 클라이언트가 접속 시 명시적으로 입력한 사용자 이름과 호스트를 그대로 보여줍니다.
일반적인 상황에서는 두 함수가 동일한 값을 반환하지만, 프록시 사용자나 익명 계정 등 인증 과정에서 계정이 매핑되는 경우에는 서로 다른 결과가 나올 수 있으므로 상황에 맞게 적절한 함수를 선택해 사용하시기 바랍니다.