mysql

MySQL 사용자 권한 및 계정 삭제하기

hoazzinews 2024. 12. 2. 19:28

이번 시간에는 지난 시간에 이어서 MySQL 계정에 대한 권한과 계정을 삭제하는 방법에 대해서 살펴보겠습니다.

 

지난 글: MySQL에 새 계정 생성하고 권한 부여하기

 

MySQL에 새 계정 생성하고 권한 부여하기

MySQL을 처음 설치하면 'root'계정이 있습니다. 'root'계정은 거의 천하무적 계정으로 개발자들은 각자의 계정을 가지거나 또는 팀에 계정을 사용합니다. 이번 시간에는 MySQL에 새 계정을 생성하고

hoazzinews.tistory.com

 

1. 우분투를 실행하고 putty를 이용한 접속

SSH 프로토콜로 Ubuntu 서버에 접솏합니다.
Ubuntu 서버에 접속했습니다.

2. MySQL 진입

$ sudo mysql -u root -p 

ubuntu 계정 비밀번호와 mysql root 계정 비밀번호를 순서대로 입력하고 'Enter'를 누르면 MySQL에 진입합니다.

 

mysql 데이터 베이스 선택

> use mysql; 

mysql 데이터 베이스를 선택합니다.

 

3. 계정 조회

> select host, user, authentication_string from user; 

user 테이블의 계정 정보를 조회합니다.

 

4. 권한 삭제

 - 'dev01'@'192.168.56.102'의 권한을 삭제합니다.

> revoke all privileges on *.* from 'dev01'@'192.168.56.1';

'revoke'를 이용해서 권한을 삭제하면 에러가 발생할 수 있습니다.

 

'revoke'를 이용해서 권한을 삭제하면 에러가 발생할 수 있습니다. 에러는 현재 로그인 계정(root)에 권한을 삭제할 수 있는 '시스템 권한'이 없어서 입니다.

 

 - root 계정의 권한을 확인합니다.

> show grants for 'root'@'%'; 

'root' 계정에 '시스템 권한'이 없습니다.

 

 - root 계정에 '시스템 권한'을 부여합니다.

> grant system_user on *.* to 'root'@'%'; 

root 계정에 '시스템 권한'을 부여합니다.

 

 - 권한 부여 후 권한을 즉시 적용합니다.

> flush privileges; 

권한을 적용합니다.

 

 - root 계정의 권한을 확인합니다.

'root' 계정에 '시스템 권한'이 있습니다.

 

 - 다시 'dev01'@'192.168.56.1'의 권한을 삭제합니다.

> revoke all privileges on *.* from 'dev01'@'192.168.56.1'; 

'dev01'@'192.168.56.1'의 권한이 삭제됐습니다.

 

 - MySQL을 빠져나온 후 mysql 서비스를 재시작 합니다.

> exit 

$ sudo systemctl restart mysql; 

$ sudo systemctl status mysql; 

mysql 서비스를 재시작 합니다.

 

5. Workbench에서 dev01로 mysql 서버 접속

'192.168.56.102_dev01' 커넥션을 클릭합니다.

 

6. 'dev01'@'192.168.56.1'의 권한 확인

권한이 삭제되어 mysql 데이터 베이스에 접근할 수 없습니다.

 

6. 'dev01'@'192.168.56.1' 계정 삭제

 

 - root 계정으로 mysql에 진입합니다.

$ sudo mysql -u root -p 

mysql에 root 계정으로 진입합니다.

 

 - mysql 데이터 베이스를 선택하고 user 테이블의 계정을 조회 합니다.

> use mysql; 

> select host, user, authentication_string from user; 

user 테이블의 계정 목록을 조회합니다.

 

 - 'dev01'@'192.168.56.1' 계정을 삭제합니다.

> drop user 'dev01'@'192.168.56.1'; 

'dev01'@'192.168.56.1' 계정이 삭제됐습니다.

 

※참고. 여러 계정(dev01, dev02) 삭제 방법

> drop user 'dev01'@'192.168.56.1', 'dev02'@'192.168.56.1'; 

 

 - 다시 user 테이블에서 계정을 조회하면 'dev01'@'192.168.56.1'이 삭제된것을 확인할 수 있습니다.

> select host, user, authentication_string from user; 

user 테이블에 'dev01'@'192.168.56.1' 계정이 없습니다.

 

7. Workbench에서 dev01로 mysql 서버 접속

'192.168.56.102_dev01' 커넥션을 클릭합니다.

 

'dev01' 계정 삭제로 접속에 실패했습니다.

 

 

이번 시간에서는 mysql에서 특정 계정의 권한 삭제 및 계정 삭제를 살펴봤습니다.

반응형