728x90
반응형
SMALL

MySQL 사용자

목차:

  1. 사용자 추가하기
  2. DB 권한 부여하기 
    1. 할당 권한 상세 옵션
    2. IP권한 상세 옵션 
  3. 예제
  4. 사용자 제거
  5. 사용자 권한 조회하기
  6. 사용자 권한 제거하기

 

1. 사용자 추가하기

- mysql 8.0 command line client root 계정으로 로그인
- 로컬에서 접속 가능한 사용자 추가하기

기본 구조:
                create user '사용자명' @ 'localhost' identified by '사용자 비밀번호';
예시:
                create user 'apple'@'localhost' identified by '1111';

2. DB 권한 부여하기 

grant all privileges on *.* to '사용자' @ 'localhost'; #모든 DB에 접근가능 
grant all privileges on 데이터베이스명.to '사용자'@'localhost';
flush privileges; # 새로운 세팅을 적용함


            
✔ 2-1 할당 권한 상세 옵션

create, drop, alter:                  테이블에 대한 생성, 삭제, 변경 권한
select, insert, update, delete: 테이블의 데이터를 조회, 삽입, 변경, 삭제에 대한 권한
all:                                          모든 권한
usage:                                    권한을 부여하지 않고 계정만 생성

ex) grant select(,,,하면서 더 추가 가능) on (데이터베이스명.테이블명 to '사용자'@'localhost');
                                               # 괄호안에있는 것들은 생략가능 

 

✔ 2-2 IP권한 상세 옵션 

%: 모든 아이피에서 접근 가능
127.0.0.1: localhost에서 접근 가능
ex) grant select(,,,하면서 더 추가 가능) on 데이터베이스명.테이블명 to '사용자'@'%';
ex) grant select(,,,하면서 더 추가 가능) on 데이터베이스명.테이블명 to '사용자'@'특정아이피 주소';      

 

3. 예제

 

# apple 데이터베이스에 kdt.member 테이블을 복사하고 해당 테이블의 select 권한만 가능한 orange 계정을 만들어보자.
use kdt;
create table members(select * from member); 
create user 'orange'@'localhost' identified by '1111';
grant select on kdt.members to 'orange'@'localhost';

# 선생님 답안(터미널 사용)
use apple
create table member(select * from member); 
grant select on apple.members to 'orange'@'localhost';
flush privileges;

# 오렌지 계정 테스트
use apple;
select * from member;
update member set point = 500 where userid='berry';  # Error Code: 1142. UPDATE command denied to user 'orange'@'localhost' for table 'member'

# 사용자 목록 조회
use mysql;
select user, host from user;

 

4. 사용자 제거

# drop user 계정명; # 추천!
# delete from user where user=계정명;

5. 사용자 권한 조회하기

show grants for 계정명@'localhost';
show grants for 'apple'@'localhost';
show grants for 'orange'@'localhost';

6.사용자 권한 제거하기

revoke 권한명 privileges on 데이터베이스명.테이블명 from '계정명'@'localhost';
revoke all privileges on apple.* from 'apple'@'localhost';
728x90
반응형
LIST

'DBMS > MySQL' 카테고리의 다른 글

MySQL- 트랜젝션(Transaction)  (0) 2023.03.21
MySQL- View  (0) 2023.03.21
MySQL- 데이터 조작(select)  (0) 2023.03.16
MySQL- 연산자  (0) 2023.03.16
MySQL - table  (0) 2023.03.15

+ Recent posts