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

MySQL에서 DROP USER 실행 후 사용자가 mysql.user 테이블에서 실제로 삭제되었는지 확인하는 방법

MySQL DROP USER 명령어와 mysql.user 테이블 확인

MySQL에서 DROP USER 문을 실행하면 해당 계정은 즉시 삭제되며, 그 결과는 mysql.user 테이블에서 직접 확인할 수 있습니다. 이 글에서는 실제 예제를 통해 사용자를 삭제한 전후의 테이블 상태를 비교해 보겠습니다.

1단계: 현재 등록된 모든 사용자 조회

먼저 SELECT 문을 사용하여 MySQL.user 테이블에 저장된 모든 사용자(user)와 호스트(host) 정보를 확인합니다.

mysql> select user,host from MySQL.user;

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

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| Bob              | %         |
| Manish           | %         |
| User2            | %         |
| mysql.infoschema | %         |
| mysql.session    | %         |
| mysql.sys        | %         |
| root             | %         |
| @UserName@       | localhost |
| Adam Smith       | localhost |
| James            | localhost |
| John             | localhost |
| John Doe         | localhost |
| User1            | localhost |
| am               | localhost |
| hbstudent        | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
+------------------+-----------+
17 rows in set (0.00 sec)

현재 총 17개의 계정이 등록되어 있으며, 그중 삭제할 대상인 'hbstudent'(호스트: localhost)가 목록에 포함되어 있습니다.

2단계: DROP USER로 사용자 삭제

이제 DROP USER 문을 사용하여 'hbstudent'@'localhost' 계정을 삭제합니다. 사용자를 지정할 때는 반드시 호스트 정보까지 함께 명시하는 것이 좋습니다.

mysql> drop user 'hbstudent'@'localhost';
Query OK, 0 rows affected (0.17 sec)

Query OK 메시지가 출력되면 삭제가 정상적으로 완료된 것입니다.

3단계: 삭제 결과 검증

삭제 후 다시 MySQL.user 테이블을 조회하여 해당 사용자가 실제로 제거되었는지 확인합니다.

mysql> select user,host from MySQL.user;

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

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| Bob              | %         |
| Manish           | %         |
| User2            | %         |
| mysql.infoschema | %         |
| mysql.session    | %         |
| mysql.sys        | %         |
| root             | %         |
| @UserName@       | localhost |
| Adam Smith       | localhost |
| James            | localhost |
| John             | localhost |
| John Doe         | localhost |
| User1            | localhost |
| am               | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
+------------------+-----------+
16 rows in set (0.00 sec)

결과 분석

위 결과를 보면 행 수가 17개에서 16개로 줄었고, 목록에서 'hbstudent'가 사라진 것을 확인할 수 있습니다. 즉, DROP USER가 성공적으로 실행되면 해당 계정은 mysql.user 테이블에서 즉시 제거됩니다.

만약 DROP USER 실행 후에도 사용자가 여전히 보인다면 다음 사항을 점검해 보세요.

  • 호스트 불일치: 'user'@'%'와 'user'@'localhost'는 서로 다른 계정입니다. 삭제하려는 계정의 호스트가 정확한지 확인하세요.
  • 권한 부족: DROP USER를 실행하려면 CREATE USER 권한 또는 mysql 데이터베이스에 대한 UPDATE 권한이 필요합니다.
  • 세션 캐시: 이미 로그인 중인 세션은 삭제된 계정으로도 연결이 유지될 수 있으므로, 새로운 세션에서 다시 조회해 보세요.