본문으로 건너뛰기

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='계정';
HostUserPasswordSelect_privInsert_privUpdate_privDelete_privCreate_privDrop_privReload_privShutdown_privProcess_privFile_privGrant_privReferences_privIndex_privAlter_privShow_db_privSuper_privCreate_tmp_table_privLock_tables_privExecute_privRepl_slave_privRepl_client_privCreate_view_privShow_view_privCreate_routine_privAlter_routine_privCreate_user_privEvent_privTrigger_privCreate_tablespace_privssl_typessl_cipherx509_issuerx509_subjectmax_questionsmax_updatesmax_connectionsmax_user_connectionspluginauthentication_string
localhost계정*EA2F517671BBC9378BEC7F043A38834A232D707ENNNNNNNNNNNNNNNNNNNNNNNNNNNN0000NULLNULL

위 예시는 계정 생성 직후 권한이 반영되기 전 상태를 보여줍니다.


4. db 테이블에서 해당 계정의 권한을 확인합니다

mysql> select * from db where db='DB명';
HostDbUserSelect_privInsert_privUpdate_privDelete_privCreate_privDrop_privGrant_privReferences_privIndex_privAlter_privCreate_tmp_table_privLock_tables_privCreate_view_privShow_view_privCreate_routine_privAlter_routine_privExecute_privEvent_privTrigger_priv
localhostDB명계정YYYYYYYYYYYYYYYYYYY

위 표에서 'Y'는 해당 권한이 부여되었음을 의미합니다.


5. 변경된 권한 내용을 적용합니다

mysql> flush privileges;

6. 새로 생성한 계정으로 MySQL 접속을 테스트합니다

[root@localhost root]# /usr/local/mysql/bin/mysql -u 계정 -p DB명

MySQL에 정상적으로 접속되면 설정이 완료된 것입니다.