MySQL

[MySQL] 30. MySQL 계정 생성 및 권한

Song hyun 2024. 6. 10. 11:07
728x90
반응형

[MySQL] 30. MySQL 계정 생성 및 권한

1. 계정 생성 및 권한 부여 방법

2. 권한 부여의 범위

3. 작업별 권한 부여

4. 시나리오 코드


 MySQL에서 새 사용자 계정을 생성하고, 해당 사용자에게 DB 권한을 부여하는 과정은 DB 보안과 관리의 중요한 부분이다. 이러한 과정을 통해 각 사용자가 접근할 수 있는 데이터를 통제하고, 시스템을 보다 안전하게 유지할 수 있다.

 

*root 계정: 최상위 관리자 계정

*일반적으로 신입에게는 CRUD 중 R(read:읽기) 기능만 주어진다.


 

1. 계정 생성 및 권한 부여 방법 (버전에 따라 방식이 조금 다르다.)

(1) 사용자 생성: CREATE USER -> 사용자 생성/비밀번호 설정

(2) 권한 부여: 사용자 생성 후, GRANT -> 해당 사용자에게 권한 부여

 


2. 권한 부여의 범위

(1) 전체 권한 부여:

-사용자에게 모든 데이터베이스의 모든 테이블에 대한 모든 권한을 부여한다.

-이는 매우 강력한 권한이자, 주로 DB 관리자에게 주어진다.

 

(2) 특정 데이터베이스에 대한 권한 부여:

-사용자에게 트겅 데이터베이스에 대한 권한을 부여한다.

-이때, 사용자는 

 

(3) 특정 테이블에 대한 권한 부여:

-사용자에게 특정 데이터베이스의 특정 테이블에 대한 권한만 부여할 수 있다.

-이는 권한을 보다 세밀하게 제어하고자 할 때 사용된다.


3. 작업별 권한 부여

 

(1) 

(2) 권한 적용

(3) 권한 제거


4. 시나리오 코드

-- 원격지에서 접근하는 사용자 계정 생성
-- 루트 권한을 제외하고, 비밀번호 설정에 대한 제약이 있을 수 있다. 
create user 'tenco2'@'%' identified by '1q2w3e4r5t!';

 

-- localhost 에서 접근 가능한 계정 생성
create user 'tenco2'@'localhost' identified by '1q2w3e4r5t!';

 

-- 사용자 계정 권한 확인
show grants for 'tenco2'@'%';
show grants for 'tenco2'@'localhost';

 

 

 

-- 작업별 권한을 할당
grant select,update,delete on mydb2.* to 'tenco2'@'%';

-- root 권한으로 새로운 사용자 생성 및 권한 할당
-- 권한 바로 적용하기 (세선 종료 후에 재접속하면 적용 됨)
flush privileges;

show grants for 'tenco2'@'%';

 


*전체 코드

-- 사용자 생성하기 (비밀번호 함께 설정)

-- 사용자 계정 생성은 원격지, 로컬 환경으로 나뉜다.

-- 원격지에서 접근하는 사용자 계정 생성
-- 루트 권한을 제외하고, 비밀번호 설정에 대한 제약이 있을 수 있다. 
create user 'tenco2'@'%' identified by '1q2w3e4r5t!';

-- localhost 에서 접근 가능한 계정 생성
create user 'tenco2'@'localhost' identified by '1q2w3e4r5t!';

-- 사용자 계정 권한 확인
show grants for 'tenco2'@'%';
show grants for 'tenco2'@'localhost';

-- 작업별 권한을 할당
grant select,update,delete on mydb2.* to 'tenco2'@'%';

-- root 권한으로 새로운 사용자 생성 및 권한 할당
-- 권한 바로 적용하기 (세선 종료 후에 재접속하면 적용 됨)
flush privileges;

show grants for 'tenco2'@'%';
728x90
반응형