들어가기에 앞서
본 게시물은 'MySQL 8.0' 버전을 이용한 '명령 프롬프트(cmd)' 환경에서 작성한 코드를 토대로 만들어졌습니다.
이번 게시물에서는 root 계정 외에 별도의 사용자 계정을 생성하고 삭제하는 명령어를 알아보도록 하겠습니다.
사용자 계정 목록 확인
mysql> USE mysql;
Database changed
mysql> SELECT host, user, authentication_string FROM user;
+-----------+------------------+------------------------------------------------------------------------+
| host | user | authentication_string |
+-----------+------------------+------------------------------------------------------------------------+
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root | *9A6E53B4FC885166A28210032F06DDFCA0B62BC6 |
+-----------+------------------+------------------------------------------------------------------------+
4 rows in set (0.00 sec)
사용자 계정을 생성하기 전에 현재 MySQL 내에 존재하는 계정 목록을 확인한 결과입니다.
여기서 host는 호스트명, user는 사용자 ID, authentication_string은 비밀번호를 뜻합니다.
CREATE USER - 사용자 계정 생성
# 사용자 ID가 test이고 비밀번호가 1234인 사용자 계정을 생성
mysql> CREATE USER test [IDENTIFIED BY '1234'];
Query OK, 0 rows affected (0.01 sec)
# 사용자 ID가 test1이고 비밀번호가 1234이면서 localhost를 통해서만 접속이 가능한 사용자 계정을 생성
mysql> CREATE USER test1@localhost [IDENTIFIED BY '1234'];
Query OK, 0 rows affected (0.01 sec)
# 사용자 ID가 test2이고 비밀번호가 1234이면서 외부 접속이 가능한 사용자 계정을 생성
mysql> CREATE USER test2@'%' [IDENTIFIED BY '1234'];
Query OK, 0 rows affected (0.01 sec)
"IDENTIFIED BY '비밀번호'"는 해당 계정에 접속하려고 시도할 때 요구되는 비밀번호를 설정해줍니다.
비밀번호를 설정해주지 않아도 계정 생성에 문제는 없지만 웬만하면 설정해주도록 합니다.
mysql> SELECT host, user, authentication_string FROM user;
+-----------+------------------+------------------------------------------------------------------------+
| host | user | authentication_string |
+-----------+------------------+------------------------------------------------------------------------+
| % | test | *A4B6157319038724E3560894F7F932C8886EBFCF |
| % | test2 | *A4B6157319038724E3560894F7F932C8886EBFCF |
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root | *9A6E53B4FC885166A28210032F06DDFCA0B62BC6 |
| localhost | test1 | *A4B6157319038724E3560894F7F932C8886EBFCF |
+-----------+------------------+------------------------------------------------------------------------+
7 rows in set (0.00 sec)
사용자 계정 목록을 조회한 결과, 'test'와 'test2'를 생성하는 방법에 차이가 없음을 알 수 있습니다.
DROP USER - 사용자 계정 삭제
# 사용자 ID가 test인 사용자 계정 삭제
mysql> DROP USER test;
# 사용자 ID가 test1이고 localhost를 통해서만 접속 가능한 사용자 계정을 삭제
mysql> DROP USER test1@localhost;
# 사용자 ID가 test2이고 외부에서 접속 가능한 사용자 계정을 삭제
mysql> DROP USER test2@'%';
사용자 계정을 삭제하는 명령어입니다.
댓글