🩷02_DataBase/01_SQL( Structured Query Language)

#mysql #계정생성 #권한부여 #root #권한즉시부여 #FLUSH PRIVILEGES

roomname-dev 2024. 5. 22. 10:53
728x90

👊  Mysql 계정 생성 & 권한 부여 알아보기

DBMS설치시 생성되는 최고 관리자 root계정
- DB모든 권한 생성
- 사용자들에게는 root를 통한 테이블 권한, DB권한, dml에 대한 적절한 권한 부여를 통한 계정 생성 
  후 계정 전달 사용 
  
  root계정은 DB의 모든 권한이 존재함에 따라 어플리케이션에서 직접 사용 불가 형태로 구성 필요

 

👊 DB접속을 통한 계정 조회

🌱 mysql root 권한 접속
>mysql -u root -p

🌱mysql 스키마 선택
>use mysql;

🌱사용자 목록 조회
>SELECT user,host FROM user;

 

👊 mysql 8.0 버전부터 시스템, 일반 계정 구분 사용 

👊 User 생성

create user '사용자'@'host' identified by '비밀번호';

//ex1) 내부 접근을 허용하는 사용자 추가
create user 'test'@'localhost' identified by '0000';

//ex2) 외부 접근을 허용하는 사용자 추가
create user 'test'@'%' identified by '0000';

//ex3) 특정 ip만 접근을 허용하는 사용자 추가
create user 'test'@'123.456.789.100' identified by '0000';

//ex4) 특정 ip 대역을 허용하는 사용자 추가
create user 'test'@'192.168.%' identified by '0000';

 

👊 User 삭제

drop user '사용자';
//또는
delete from user where user='사용자';

//예시
drop user 'test'@'localhost';

 

👊 User 권한부여

// 모든 데이터베이스의 모든 테이블에 모든 권한을 줌
grant all privileges on *.* to '사용자'@'localhost';

// 특정 데이터베이스의 모든 테이블에 모든 권한을 줌
grant all privileges on DB이름.* to '사용자'@'localhost';

// 특정 데이터베이스의 특정 테이블에 모든 권한을 줌
grant all privileges on DB이름.테이블명 to '사용자'@'localhost';

// 특정 데이터베이스의 특정 테이블에 select 권한을 줌
grant select on DB이름.테이블명 to '사용자'@'localhost';

// 특정 데이터베이스의 특정 테이블에 select, insert 권한을 줌
grant select, insert on DB이름.테이블명 to '사용자'@'localhost';

// 특정 데이터베이스의 특정 테이블의 컬럼1과 컬럼2의 update 권한을 줌
grant update(컬럼1, 컬럼2) on DB이름.테이블명 to '사용자'@'localhost';

 

👊  Mysql8.0 부터 권한 설정

 

👊  User생성 및 권한 부여 일괄 처리 (mysql8.0 버전에서는 불가)

mysql 8.0 버전 부터는 사용자 생성 및 권한 부여 한번에 불가🙅‍♀️
mysql 8.0 버전 부터는 사용자 생성 및 권한 부여 한번에 가능🙆‍♂️

👊  권한 즉시 반영

FLUSH PRIVILEGES;

 

 

Ref. https://jay-so.tistory.com/67
Ref. https://velog.io/@eigenkyeong/MySQL-%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%A1%B0%ED%9A%8C-%EC%83%9D%EC%84%B1-%EC%A0%9C%EA%B1%B0-%EA%B6%8C%ED%95%9C%EB%B6%80%EC%97%AC
Ref. https://hotinme35.tistory.com/56

 

728x90