MySQL 사용자 목록 및 관리 방법: 사용자 보기, 권한 확인, 생성 및 오류 해결

1. 소개

MySQL에서 사용자를 관리하는 것은 데이터베이스 보안을 유지하고 효율적인 운영을 보장하기 위한 필수 작업입니다. 어떤 사용자가 데이터베이스에 접근할 수 있는지, 어떤 권한을 가지고 있는지를 이해함으로써 적절한 접근 제어를 적용하고 전체 보안을 강화할 수 있습니다.

이 문서에서는 MySQL 사용자 목록을 표시하고, 상세 사용자 정보를 조회하며, 사용자를 생성·관리하고, 일반적인 오류를 해결하는 방법을 설명합니다. 끝까지 읽으면 MySQL 사용자 관리의 기본 개념과 실무 절차를 모두 이해하게 됩니다.

2. 사용자 목록 조회 방법

MySQL에서 사용자의 목록을 조회하려면 mysql.user 테이블을 사용합니다. 이 테이블은 MySQL에 등록된 모든 사용자의 정보를 저장하고 있으며, 간단한 명령으로 필요한 정보를 표시할 수 있습니다.

사용자 목록을 표시하는 기본 방법

먼저 MySQL에 로그인한 뒤 다음 명령을 실행합니다.

SELECT Host, User FROM mysql.user;

이 명령은 각 사용자의 HostUser 이름 목록을 표시합니다. 예를 들어 “localhost” 또는 “127.0.0.1”과 같은 호스트 이름이 나타날 수 있습니다. 이러한 호스트는 일반적으로 로컬 연결(IPv4 또는 IPv6)을 의미합니다. 이 설정은 로컬 환경에서 사용자 관리를 할 때 흔히 볼 수 있습니다.

모든 사용자 정보 조회

보다 자세한 정보가 필요하다면 다음 명령으로 mysql.user 테이블의 모든 열을 표시할 수 있습니다.

SELECT * FROM mysql.user;

이 명령은 각 사용자에 대한 상세 정보(인증 정보 및 권한 설정 등)를 보여줍니다. 하지만 필요한 열만 지정하면 읽기 쉬운 결과를 얻을 수 있습니다. 위 명령이 포괄적인 정보를 제공하지만, 특정 열만 선택하면 보다 정돈되고 가독성 높은 출력이 됩니다.

3. 상세 사용자 정보 조회

MySQL에서는 사용자에 대한 비밀번호 해시와 권한 정보를 조회할 수 있어 사용자 관리를 보다 효율적으로 할 수 있습니다.

비밀번호 해시 표시 방법

MySQL에서는 비밀번호가 암호화되어 authentication_string 열에 해시 형태로 저장됩니다. 다음 명령을 사용해 호스트명, 사용자명 및 비밀번호 해시를 확인할 수 있습니다.

SELECT Host, User, authentication_string FROM mysql.user;

이를 통해 각 사용자에 비밀번호가 설정되어 있는지 확인할 수 있습니다. 해시값이 표시되지만 복호화가 불가능하므로 보안이 유지됩니다. 이 방법은 새로 만든 사용자를 검증하거나 권한 할당을 확인할 때 특히 유용합니다.

특정 사용자의 권한 확인

데이터베이스나 테이블에 대해 사용자가 어떤 권한을 가지고 있는지 확인하려면 SHOW GRANTS 명령을 사용합니다.

SHOW GRANTS FOR 'username'@'hostname';

이 명령은 지정된 사용자에게 부여된 모든 권한을 표시합니다. 권한을 결정하거나 검토할 때 데이터베이스 관리자가 활용하기에 매우 유용합니다.

4. 사용자 생성 및 관리

이 섹션에서는 MySQL에서 새 사용자를 생성하고, 권한을 설정·수정하는 방법을 소개합니다.

새 사용자 생성

새 사용자를 만들려면 CREATE USER 구문을 사용합니다. 다음 예시는 example_user라는 사용자와 password123 비밀번호를 생성합니다.

CREATE USER 'example_user'@'localhost' IDENTIFIED BY 'password123';

사용자를 만든 후에는 MySQL에서 변경 사항을 적용하기 위해 FLUSH PRIVILEGES를 실행해야 합니다.

FLUSH PRIVILEGES;

사용자를 삭제할 때 주의할 점

불필요한 사용자를 제거하려면 DROP USER 명령을 사용합니다. 그러나 사용자를 삭제하기 전에 관련 권한과 데이터에 미칠 잠재적 영향을 검토하는 것이 중요합니다. 예를 들어, 삭제하려는 사용자가 다른 시스템이나 서비스와 연동되어 있다면 계정을 삭제했을 때 접근 실패가 발생할 수 있습니다. 항상 신중히 진행하십시오.

5. 일반적인 오류와 해결 방법

MySQL 사용자 관리 중 오류가 발생할 수 있습니다. 아래는 흔히 마주치는 오류와 그 해결 방법을 정리한 내용입니다.

권한 오류: “Access denied”

“The Access denied” 오류는 사용자가 데이터베이스나 테이블에 대한 적절한 권한이 없을 때 발생합니다. 이 경우 관리자는 다음 명령을 사용하여 필요한 권한을 부여함으로써 문제를 해결할 수 있습니다:

GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'hostname';
FLUSH PRIVILEGES;

사용자 인증 오류: “알 수 없는 사용자”

“Unknown user” 오류는 지정된 사용자가 존재하지 않을 때 발생합니다. 이 오류가 발생하면 사용자 이름과 호스트 이름이 올바르게 지정되었는지 확인하고, 해당 사용자가 mysql.user 테이블에 존재하는지 확인하십시오.

비밀번호 관련 오류

비밀번호 불일치나 인증 오류가 발생하면 비밀번호를 재설정하여 문제를 해결할 수 있습니다. 다음 명령을 사용하여 비밀번호를 업데이트하십시오:

ALTER USER 'username'@'hostname' IDENTIFIED BY 'new_password';

6. 결론

이 문서에서는 MySQL 사용자 목록을 가져오고, 상세 정보를 확인하며, 사용자를 생성 및 관리하고, 일반적인 오류를 해결하는 방법을 설명했습니다. 적절한 사용자 관리는 데이터베이스 보안을 강화하는 데 직접적인 기여를 합니다. 사용자 계정과 권한을 정기적으로 검토하면 무단 접근 위험을 줄이는 데 도움이 됩니다.

이러한 방법을 사용하여 MySQL을 안전하고 효율적으로 운영하십시오.