평범한 이야기들

[Ubuntu] Ubuntu20.04 에서 Mysql 사용자 설정 본문

평범한 개발 이야기/OS

[Ubuntu] Ubuntu20.04 에서 Mysql 사용자 설정

songsariya 2021. 1. 12. 16:26
728x90

 Ubuntu20.04에서 사용하는 Mysql에 관리자가 아닌 다른 사용자를 추가해서 사용해야 할 때가 존재합니다. 그래서 사용자를 추가 부분을 정리한 내용입니다. 먼저 콘솔에서 Mysql로 접속을 합니다. 명령어는 아래와 같습니다.

$ mysql -uroot -p

명령어를 입력한 후 비밀번호를 입력하면 Mysql에 로그인이 된 화면을 보실 수 있습니다. GUI 에만 익숙한 사람들이라면 어색할 수 있지만 쉘처럼 커맨드로 Mysql을 관리할 수 있습니다.

 

Mysql에 로그인 된 화면

 

사용할 데이터베이스를 선택해 줍니다. 해당 명령어는 아래와 같습니다.

mysql > use [데이터베이스명]

저는 mysql 데이터베이스를 선택했습니다. 사용자 관련 테이블은 mysql 데이터베이스에 존재합니다. 그래서 선택을 해주었습니다.

mysql 데이터베이스를 선택한 화면

 

# Mysql 사용자 추가

 이제 사용자 추가를 진행하시면 됩니다. 

#사용자 추가
mysql > CREATE USER 사용자ID;   // 단순히 사용자 추가

# 사용자(user)를 추가하면서 패스워드까지 설정
mysql > CREATE USER '사용자ID'@localhost IDENTIFIED BY '비밀번호';

# 기존에 사용하던 계정에 외부 접근 권한을 부여하려면, Host를 '%' 로 하여 똑같은 계정을 추가한다
mysql > CREATE USER '사용자ID'@'%' IDENTIFIED BY '비밀번호';

 

사용자 추가하는 화면

 localhost와 외부에서도 접근할 수 있는 아이디를 만들어주었습니다. 생성한 아이디가 사용할 데이터베이스를 생성해주시면 됩니다.

 

# 데이터베이스를 생성한다.
mysql > CREATE DATABASE DB명 DEFAULT CHARACTER SET utf8mb4;

 

데이터베이스를 생성하는 화면

캐릭터 셋 인 utf8mb 4는 4바이트형 캐릭터 셋입니다. 더 자세한 내용은 나중에 정리해보겠습니다. 데이터베이스까지 생성을 했기 때문에 새로 생성한 아이디에 권한을 부여해주면 됩니다.

 

# 생성한 데이터베이스에 대한 권한을 부여해준다. identified by '비밀번호' 부분을 추가하면 비밀번호가 변경된다.

# 모든 권한을 부여한다.
mysql> GRANT ALL privileges ON DB명.* TO '사용자ID'@locahost IDENTIFIED BY '비밀번호';
mysql> GRANT ALL privileges ON DB명.* TO '사용자ID'@'%' IDENTIFIED BY '비밀번호';


# 사용자ID 에게 'DB명' 데이터베이스에 있는 모든 테이블에 SELECT, INSERT, UPDATE 권한만 부여
mysql> GRANT SELECT, INSERT, UPDATE ON DB명.* TO '사용자ID'@localhost IDENTIFIED BY '비밀번호';

# 사용자ID 에게 'DB명' 데이터베이스에 있는 모든 테이블에 패스워드는 변경없이 SELECT, INSERT, UPDATE 권한만 부여
mysql> GRANT SELECT, INSERT, UPDATE ON DB명.* TO '사용자ID'@localhost; 

# 사용자ID 에게 모든 데이터베이스 모든 테이블에 권한 부여
mysql> GRANT ALL PRIVILEGES ON *.* TO '사용자ID'@localhost IDENTIFIED BY '비밀번호' WITH GRANT OPTION;


# 사용자에게 부여된 권한 확인
mysql > SHOW GRANTS FOR '사용자ID'@localhost;
mysql > SHOW GRANTS FOR '사용자ID'@'%';

 

권한 추가 및 권환 내용을 보여주는 화면

 이렇게 새로운 사용자에게 데이터베이스와 권한을 부여했습니다. 해당 사용자로 로그인을 하면 새로 만든 데이터베이스에서 작업을 원활하게 할 수 있습니다.

 

# Mysql 사용자 삭제

 이미 생성된 사용자의 권한을 삭제하거나 사용자 계정 자체를 삭제를 하는 방법은 아래와 같습니다.

# 사용자에게 데이터베이스 사용권한 제거
mysql > REVOKE ALL ON DB명.테이블명 FROM '사용자ID';

# 사용자 계정 삭제
mysql > DROP USER '사용자ID'@'%';
mysql > DROP USER '사용자ID'@localhost;

 

이렇게 Mysql에 기본적인 사용자 추가, 권한 부여 등을 정리했습니다.

728x90
Comments