[MySql] DCL-GRANT, REVOKE

hyun·2022년 9월 14일
0

SQL

목록 보기
5/7

DCL (DATA CONTROL LANGUAGE)

📚 유저 조회

mysql -uroot -p
use mysql;
select user from user;

위 세 명령어를 차례대로 입력하면 아래와 같이 유저의 목록을 확인할 수 있다.

📚 유저 생성

비밀번호 설정 안하는 경우

create user 유저명;

비밀번호 설정 하는 경우

create user 유저명@localhost identified by 비밀번호

유저가 추가된 것을 볼 수 있다.

📚 사용자 권한

사용자 권한 위임

위에서 만든 hyun 계정을 통해 mysql에 접속하고 데이터베이스를 생성하려고 하면 다음처럼 오류가 난다.

이렇게 DB에 대한 권한은 root 계정이 가지고, 다른 계정으로는 데이터베이스를 만들거나 존재하는 데이터베이스에 접근할 수 없게 되어 있다.

다시 root 계정으로 돌아가 권한을 줘보자.

root 계정으로 권한을 주고 싶은 데이터베이스를 선택한다.

use DB명;

그리고 아래 명령어를 입력한다.

GRANT SELECT, INSERT, UPDATE, DELETE on 테이블명 TO 유저명 

다시 hyun 계정으로 돌아가 아래 명령어를 입력해보자.

SHOW GRANTS;

SHOW GRANTS 명령어를 통해 주어진 권한을 확인할 수 있다.

실제로 DB에 접근 가능한지 확인해보자.

test DB가 보인다!
use test를 통해 DB를 선택하고 SELECT와 INSERT를 시험해보자.

정상적으로 작동하는 것을 볼 수 있다.

🚨 아래 명령어를 통해 유저에게 모든 권한을 줄 수도 있지만, 보통 보안 문제 때문에 잘 안 쓴다고.

GRANT ALL PRIVILEGES on test.students TO 유저명;

WITH GRANT OPTION : 다른 유저에게 권한 위임 가능
CASCADE : 그 유저가 준 권한들도 박탈

사용자 권한 박탈

REVOKE 명령어를 사용한다.

REVOKE ALL ON test.students FROM 유저명;

📚 유저 삭제

DROP USER 유저명@서버명

명령어를 이용해서 유저를 삭제할 수 있다.

0개의 댓글