MySQL 데이터베이스 서버에는 mysql 데이터베이스 내에 사용자 계정 정보를 저장하는 user 테이블이 있습니다. 이 테이블을 활용하면 MySQL 데이터베이스 서버에서 새로운 사용자 계정을 손쉽게 생성할 수 있습니다.
사용자 계정 생성 시 필요한 요소
새로운 사용자 계정을 만들 때는 반드시 두 가지 정보가 필요합니다. 첫 번째는 사용자 이름(username)이고, 두 번째는 @ 문자 뒤에 오는 호스트명(hostname)입니다. 호스트명은 해당 사용자가 어느 호스트에서 접속할 수 있는지를 지정하는 역할을 합니다.
기본 문법
Use mysql;
CREATE USER user_account IDENTIFIED BY password;
- user_account: 생성하려는 사용자 계정의 이름으로, 일반적으로 username@hostname 형식으로 작성합니다.
- password: 해당 사용자 계정에 설정할 비밀번호입니다. MySQL 서버는 이 비밀번호를 통해 사용자를 식별하고 인증합니다.
실제 예제
아래 예제에서는 mysql 데이터베이스의 user 테이블에 abcd@localhost라는 이름의 사용자 계정을 생성하는 과정을 보여줍니다.
mysql> use mysql
Database changed
mysql> create user abcd@localhost identified by 'password123';
Query OK, 0 rows affected (0.04 sec)
계정이 정상적으로 생성되면 다음과 같이 SHOW GRANTS 명령어를 사용하여 새 사용자 계정 abcd@localhost에 부여된 권한을 확인할 수 있습니다.
mysql> SHOW GRANTS FOR abcd@localhost;
+------------------------------------------+
| Grants for abcd@localhost |
+------------------------------------------+
| GRANT USAGE ON *.* TO 'abcd'@'localhost' |
+------------------------------------------+
1 row in set (0.01 sec)
참고 사항
새로 생성된 계정은 기본적으로 USAGE 권한만 가지고 있으며, 이는 사실상 아무런 실질적 권한이 없음을 의미합니다. 따라서 실제 업무에 사용하려면 GRANT 문을 통해 필요한 데이터베이스 권한을 별도로 부여해야 합니다. 또한 MySQL 5.7 이상 버전에서는 보안 강화를 위해 더 복잡한 비밀번호 정책이 적용될 수 있으므로, 단순한 비밀번호 사용 시 오류가 발생할 수 있다는 점도 유의해야 합니다.