MySQL Database 사용 3

dpwl·2024년 4월 7일
0

Data Analysis

목록 보기
5/83
post-thumbnail

3. User 권한 관리

이전 글에서 사용자를 처음 생성 시 권한이 없다.

특정 데이터베이스에 대해서 특정 user에게 사용 권한이 부여 가능하다.

3-1. 실습환경 만들기

실습환경 만들기에 앞서 2가지 필요 조건은 다음과 같다.
1) 데이터베이스
2) 해당 데이트베이스에 사용 권한을 부여할 user

1) 데이터베이스 생성

권한 관리를 실습하기 위한 Database (testdb) 생성하기

create database testdb;
    
#생성된 testdb 데이터베이스 확인
show databases;

2) 사용 권한 부여할 user

*사용자 정보는 'mysql' 데이터베이스에서 관리하기에 user 관리를 할 시 mysql로 이동(USE)이 필요하다.

use mysql;
create user 'username'@'localhost' identified by 'password';
select host, user from user;

3-2. User 권한 확인

1) 특정 사용자에게 부여된 모든 권한 목록 확인

SHOW GRANTS FOR 'username'@'localhost';
#username이라는 사용자에게 부여된 모든 권한을 보여주기

GRANT USAGE ON *.* TO 'username'@'localhost'은 기본으로 주어져있는 권한

2) 특정 사용자에게 특정 데이터베이스의 모든 권한 부여

GRANT ALL ON dbname.* TO 'username'@'localhost';

Example: 사용자(yeji)에게 특정 데이터베이스 (testdb) 권한 부여하기

grant all on testdb.* to 'yeji'@'localhost';

#user의 권한 부여 확인
show grants for 'yeji'@'localhost';

참고 - 권한을 성공적으로 부여했을 시 보이는 query:
GRANT ALL PRIVILEGES ON 'dbname'.* TO 'username'@'localhost'

3-3. User 권한 삭제

사용자에게 특정 데이터베이스의 모든 권한 삭제하기

REVOKE ALL ON dbname.* FROM 'username'@'localhost';

Example:

revoke all on testdb.* from 'yeji'@'localhost';

#user의 권한 삭제 확인
show grants for 'yeji'@'localhost';

참고 - 수정 내용이 적용 되지 않은 경우 새로고침

flush privileges;

'username'@'localhost'의 권한이 삭제되고 기본 권한인 GRANT USAGE ON *.* TO 'username'@'localhost'만 남아 있는거를 확인할 수 있다.

profile
거북선통통통통

0개의 댓글