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

MySQL 사용자 계정이 모든 호스트에서 접속할 수 있도록 허용하는 방법

MySQL에서 특정 사용자 계정이 모든 호스트에서 접속할 수 있도록 허용하는 것은 충분히 가능합니다. 핵심은 @ 문자 뒤에 % 와일드카드(wildcard) 문자를 지정하여 사용자를 생성하는 것입니다.

기본 문법

USE mysql;
CREATE USER user_name@'%' IDENTIFIED BY password;

각 구성 요소의 의미는 다음과 같습니다.

  • user_name: 계정을 생성하고자 하는 사용자의 이름입니다.
  • password: 해당 사용자 계정에 설정할 비밀번호입니다. MySQL 서버는 이 비밀번호를 통해 사용자를 식별하고 인증합니다.

예제

다음 예제에서는 % 와일드카드를 사용하여 Gaurav라는 사용자를 생성함으로써, 어떤 호스트에서도 접속할 수 있는 계정을 만들어 보겠습니다.

mysql> USE mysql
Database changed

mysql> CREATE USER Gaurav@'%' IDENTIFIED BY 'password123';
Query OK, 0 rows affected (0.00 sec)

계정이 정상적으로 생성되었다면, 아래 쿼리로 새 사용자 계정 Gaurav@'%'에 부여된 권한을 확인할 수 있습니다.

mysql> SHOW GRANTS FOR Gaurav@'%';
+------------------------------------+
| Grants for Gaurav@%                |
+------------------------------------+
| GRANT USAGE ON *.* TO 'Gaurav'@'%' |
+------------------------------------+
1 row in set (0.00 sec)

GRANT USAGE ON *.*는 해당 계정이 MySQL 서버에 로그인할 수 있음을 의미하지만, 아직 데이터베이스나 테이블에 대한 실질적인 작업 권한은 없다는 뜻입니다. 필요에 따라 GRANT 문을 사용해 적절한 권한을 추가로 부여해야 합니다.

보안 관련 주의 사항

% 와일드카드를 사용하면 외부의 모든 IP 주소에서 해당 계정으로 접속이 가능해집니다. 편리하지만 그만큼 보안 위험도 커지므로, 다음 사항을 반드시 고려해야 합니다.

  • 강력하고 복잡한 비밀번호를 설정하세요.
  • 가능하다면 % 대신 특정 IP 주소나 대역(예: 192.168.1.%)을 지정하여 접속 범위를 제한하는 것이 좋습니다.
  • 운영 환경에서는 방화벽 규칙과 함께 계정 권한을 최소화(최소 권한 원칙)하여 관리하세요.