MySQL에는 UNIX 시스템에서 현재 사용자를 확인하는 whoami와 같은 전용 함수가 존재하지 않습니다. 하지만 걱정하지 않으셔도 됩니다. MySQL에서는 동일한 목적으로 USER() 또는 CURRENT_USER() 함수를 사용하면 됩니다.
MySQL 버전 확인
먼저 이 글에서 사용된 MySQL 버전은 다음과 같습니다.
+-----------+ | version() | +-----------+ | 8.0.12 | +-----------+ 1 row in set (0.00 sec)
방법 1: CURRENT_USER() 함수 사용하기
현재 접속 중인 사용자를 확인하려면 아래와 같이 CURRENT_USER() 함수를 실행합니다.
mysql> select current_user();
실행 결과는 다음과 같습니다.
+----------------+ | current_user() | +----------------+ | root@% | +----------------+ 1 row in set (0.00 sec)
방법 2: USER() 함수 사용하기
같은 목적으로 USER() 함수를 사용할 수도 있습니다. 쿼리는 다음과 같습니다.
mysql> select user();
실행 결과는 다음과 같습니다.
+----------------+ | user() | +----------------+ | root@localhost | +----------------+ 1 row in set (0.00 sec)
두 함수의 차이점
USER()와 CURRENT_USER()는 비슷해 보이지만 반환 값에 차이가 있습니다. USER()는 클라이언트가 실제로 로그인할 때 지정한 사용자와 호스트를 반환하고, CURRENT_USER()는 서버가 인증에 사용한 계정 정보를 반환합니다. 위 예제에서도 root@%와 root@localhost처럼 결과가 다르게 표시되는 것을 확인할 수 있습니다.