Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 사용자 계정 목록 확인 방법 완벽 가이드

MySQL 사용자 계정 목록 조회하기

MySQL 서버에 등록된 사용자 계정 목록을 확인하려면 mysql.user 테이블에 SELECT 쿼리를 실행하면 됩니다. 이 테이블에는 서버의 모든 사용자 계정 정보가 저장되어 있어, 간단한 쿼리 한 줄로 전체 계정 현황을 파악할 수 있습니다.

1. 사용자 계정 목록 조회 쿼리

다음은 MySQL 사용자 계정 목록을 출력하는 가장 기본적인 쿼리입니다.

SELECT User FROM mysql.user;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+------------------+
| User             |
+------------------+
| John             |
| Mac              |
| Manish           |
| mysql.infoschema |
| mysql.session    |
| mysql.sys        |
| root             |
| am               |
+------------------+
8 rows in set (0.00 sec)

결과에는 서버에 등록된 모든 사용자 계정이 표시됩니다. 이때 사용자가 직접 생성한 계정(John, Mac, Manish, am 등)뿐만 아니라, MySQL이 내부적으로 사용하는 시스템 계정(mysql.infoschema, mysql.session, mysql.sys)도 함께 포함되는 점을 참고하세요.

2. 호스트(Host) 정보까지 함께 조회하기

실제 운영 환경에서는 각 계정이 어느 호스트에서 접속을 허용하는지 아는 것이 중요합니다. Host 컬럼을 함께 조회하면 계정별 접속 범위를 확인할 수 있습니다.

mysql> select User,Host from mysql.user;

실행 결과는 다음과 같습니다.

+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| John             | %         |
| Mac              | %         |
| Manish           | %         |
| mysql.infoschema | %         |
| mysql.session    | %         |
| mysql.sys        | %         |
| root             | %         |
| am               | localhost |
+------------------+-----------+
8 rows in set (0.00 sec)

Host 값의 의미

조회된 Host 값은 다음과 같이 해석할 수 있습니다.

% (와일드카드): 모든 호스트에서의 접속을 허용한다는 의미입니다. 위 예제의 John, Mac, Manish 계정은 어느 서버에서든 접속 가능합니다.
localhost: 로컬 서버에서만 접속이 가능합니다. 위 예제의 am 계정은 해당 MySQL 서버가 설치된 머신에서만 접속할 수 있습니다.

보안 관점에서 root 계정의 Host가 '%'로 설정되어 있다면 외부 접속이 허용된 상태이므로, 필요하다면 localhost로 제한하는 것이 안전합니다.