MySQL 계정 추가 및 삭제 방법

앞서 MySQL 에 접속하는 방법을 살펴봤고, 이번에는 새로운 계정을 추가하는 방법과 삭제하는 방법을 알아보겠습니다.

MySQL 에 접속한 후에 이루어지는 모든 작업은 SQL 문을 이용한다고 생각하면 됩니다.

MySQL이 설치될 때, MySQL 시스템에는 관련된 기본 데이터베이스들이 만들어지고 기본 값들이 입력되어집니다. 우선 그것부터 간단히 살펴보겠습니다.

mysql -u root -p

MySQL에 접속을 합니다. 그러면 mysql> 이라고 나타납니다. 이제부터 SQL 문을 사용할 수 있습니다.

현재 MySQL 시스템이 가지고 있는 데이터베이스들이 뭐가 있는지 살펴보겠습니다.

mysql> show databases;

information_schema
mysql
performance_schema
sys

기본적으로 만들어져있는 4개의 데이터베이스가 보입니다. 웹사이트나 서비스를 위해서 만들어진 데이터베이스가 아닌 것들로서 모두 MySQL 시스템을 유지관리하는데 사용된다고 보면 되겠습니다.

이중에 mysql 데이터베이스가 중요합니다. 이 데이터베이스에는 어떤 정보들이 담겨있는지 들여다보겠습니다.

mysql> use mysql;

이제 mysql 이라는 데이터베이스를 사용하겠다는 명령입니다. 이제부터 이 데이터베이스에 SQL 작업을 할 수 있습니다.

mysql> show tables;

mysql 데이터베이스를 선택하고 그 안에 있는 테이블들을 보여달라고 했더니 저만큼의 테이블들이 들어있는 것을 보여주네요.

가장 아래에 user 테이블이 보입니다. 이 테이블에 계정 정보가 들어가 있습니다. SQL 로 뭐가 들어있는지 보겠습니다.

mysql> select * from user;

user 테이블 안에 컬럼, 즉 필드가 한 두개 아니고 많이 있네요. 위쪽에 보이는 컬럼 이름들 중에 _priv 가 붙은 것들이 많이 보입니다. 이것들은 모두 priviledge, 즉 권한에 관련된 컬럼들인 듯 보입니다. 이것들 외에 몇개를 선택해서 그 필드값들만 보겠습니다.

mysql> select host, user, authentication_string from user;

root 계정과 MySQL 설치 중에 만들었던 ryu 계정이 보입니다. 계정들 중에 mysql. 이 붙는 나머지 3개는 MySQL 관리용 계정인 듯하네요. 감히 손댈 생각을 말아야겠습니다.

컬럼 중에 authentication_string 이라고 보입니다. 여기에 비밀번호가 저장됩니다. MySQL 버전 5.6 이하에서는 비밀번호를 저장하는 컬럼명이 password 였었는데, 이후 버전에서부터 authentication_string 으로 변경되었습니다. 참고로 MySQL 버전 표시가 5.7 이후에 5.8이 아니라 8 로 표시됩니다.

직접 데이터베이스를 들여다보면서, MySQL 사용자 계정과 관련된 정보들은 mysql 데이터베이스의 user 테이블에 저장된다는 것을 알았습니다.

그럼, INSERT 문을 이용해서 이 테이블에 정보를 넣어주면 사용자 계정을 만들수도 있습니다…만, 좀 더 쉬운 방법이 있습니다. MySQL 설치할 때 사용했던 방법입니다.

create user ‘사용자’@’localhost’ identified with mysql_native_password by ‘비밀번호’;

로컬에서 접속가능한 ‘kim’ 이라는 계정을 비밀번호 asdf 를 주어서 만드는 명령문입니다.

create user ‘kim’@’localhost’ identified with mysql_native_password by ‘asdf’;

만약 로컬 접속이 아니라, 원격으로만 접속하도록 허락한 계정을 만들고 싶을 때는 localhost 대신에 % 를 사용하면 됩니다.

create user ‘lee’@’%’ identified with mysql_native_password by ‘asdf’;

user 테이블 내용은 아래처럼 변경이 되었습니다.

이번엔 추가한 계정을 삭제하는 방법을 알아보겠습니다.

drop user ‘사용자’@’호스트’;

만들어 둔 kim 계정을 삭제하려면 아래처럼 하면 되겠습니다.

mysql> drop user ‘kim’@’localhost’;

lee 를 삭제하려면 아래처럼 하면 됩니다.

mysql> drop user ‘lee’@’%’;

만약 호스트 자리에 % 아니라, localhost 라고 입력하면 당연히 오류가 뜹니다.

여기까지 MySQL 시스템에 사용자 계정을 추가하고 삭제하는 방법에 대해서 알아봤습니다.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *