DataBase

[Mysql] 계정 관리 및 권한 설정 방법

반나무 2021. 5. 14. 09:29

1. 접속

사용방법 : mysql -u <유저명> -p

mysql -u root -p


2. 스키마(DB)를 mysql로 변경

use mysql;


3. 스키마 테이블 구성 알아보기

여러 작업을 진행 중에 있는 mysql이라 초기보다 table이 좀 더 생성되어 있다.

여기서 계정에 관련 된 정보를 관리하는 테이블은 user 테이블이다.

show tables;

4. 계정 정보 조회

# mysql 5.7이전
select host, user, password from user;

# mysql 5.7이상
select host, user, authentication_string from user;

 

host 

  • % : 외부 접속 허용
  • localhost : 내부 접속(로컬)에서만 허용
  • 따로 원하는 IP도 줄 수 있다.

계정 관리

계정 생성

create user '계정ID'@'원하는host' identified by '비밀번호';

# 로컬에서만 사용할 때
create user 'bantree'@'localhost' identified by '1234';

# 원격에서 사용할 때
create user 'bantree'@'%' identified by '1234';

# 원하는 접속IP 대역이 있을 때 -> 173.168.x.x 에서만 접속가능
create user 'bantree'@'173.168.%' identified by '1234';

# 원하는 접속IP가 있을 때
create user 'bantree'@'IP주소를 입력' identified by '1234';

계정 삭제

delete from user where user='계정명';

# 사용법
delete from user where user='bantree';

계정 비밀번호 변경

# mysql 5.7 이전
update user set password=password('변경할비밀번호') where user='root';

# mysql 5.7 이후
alter user '계정아이디'@'호스트' identified with mysql_native_password by '변경할비밀번호';

비밀번호를 변경한 후 적용을 해줘야 한다.

flush privileges;

권한관리

계정에 권한이 있는지 확인

show grants for '계정명'@'호스트';

계정 권한 삽입

grant '접근권한' privileges on '스키마명'.'테이블명' to '계정명'@'호스트' identified by '계정비밀번호' with grant option

## 사용법

# 모든 query 사용
grant all ~~~

# select만 사용
grant select ~~

계정 권한 삭제

revoke all on '스키마명'.'테이블명' from '계정명'@'호스트';

참고문헌

계정관리 및 권한 설정 : https://2dubbing.tistory.com/13

계정 비밀번호 변경 : https://to-dy.tistory.com/58

반응형