MySQL 사용자 계정을 grant 문으로 추가하는 방법은 무엇인가요?
💡 요약 정리
- MySQL 계정 생성과 권한 부여는 grant 명령어 하나로 처리할 수 있습니다.
- MySQL에 root 권한으로 접속한 뒤, grant 및 select, flush 명령어를 순차적으로 실행합니다.
- 최종적으로 해당 계정으로 실제 접속이 가능한지 확인합니다.
1. MySQL에 root 계정으로 접속합니다
[root@localhost root]# /usr/local/mysql/bin/mysql -u root -p mysql
2. grant 문으로 계정 생성, 비밀번호 설정, DB 권한을 동시에 부여합니다
mysql> grant all privileges on DB명.* to 계정@localhost identified by '패스워드' with grant option;
Query OK, 0 rows affected (0.00 sec)
3. user 테이블에 계정이 정상 등록되었는지 확인합니다
mysql> select * from user where user='계정';
| Host | User | Password | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | Create_tablespace_priv | ssl_type | ssl_cipher | x509_issuer | x509_subject | max_questions | max_updates | max_connections | max_user_connections | plugin | authentication_string |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| localhost | 계정 | *EA2F517671BBC9378BEC7F043A38834A232D707E | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | 0 | 0 | 0 | 0 | NULL | NULL |
위 예시는 계정 생성 직후 권한이 반영되기 전 상태를 보여줍니다.
4. db 테이블에서 해당 계정의 권한을 확인합니다
mysql> select * from db where db='DB명';
| Host | Db | User | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Create_tmp_table_priv | Lock_tables_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Execute_priv | Event_priv | Trigger_priv |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| localhost | DB명 | 계정 | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
위 표에서 'Y'는 해당 권한이 부여되었음을 의미합니다.
5. 변경된 권한 내용을 적용합니다
mysql> flush privileges;
6. 새로 생성한 계정으로 MySQL 접속을 테스트합니다
[root@localhost root]# /usr/local/mysql/bin/mysql -u 계정 -p DB명
MySQL에 정상적으로 접속되면 설정이 완료된 것입니다.