함께하는 데이터 분석

[SQL] 데이터 제어어(DCL) 본문

데이터분석 공부/SQL

[SQL] 데이터 제어어(DCL)

JEONGHEON 2022. 4. 20. 22:37

오늘은 SQL의 명령어 중 하나인

 

데이터 제어어(DCL)에 대해 알아보겠습니다.

 

데이터 제어어는 데이터 접근 권한을 부여하거나

 

제거할 때 사용하는 명령어입니다.

 

Workbench를 통해 살펴보겠습니다.

 

 

 

MySQL 데이터베이스 사용

/* MySQL 데이터베이스 사용 */
use mysql;

 

 

 

사용자 확인

/* 사용자 확인 */
select * from user;

이렇게 기존의 4개의 localhost가 있습니다.

 

여기에 제가 사용자를 추가해보도록 하겠습니다.

 

 

 

사용자 추가

/* 사용자 아이디 및 비밀번호 생성 */
create user 'JH' @localhost identified by '1234';

create user로 JH 사용자를 추가하고

 

identified by로 비밀번호를 1234로 설정했습니다.

 

이제 사용자가 추가됐는지 확인해볼까요?

 

/* 사용자 확인 */
select * from user;

이렇게 JH 사용자가 추가된 것을 확인할 수 있습니다.

 

이제 기존의 설정한 비밀번호인 1234를

 

1004로 변경해보겠습니다.

 

 

 

사용자 비밀번호 변경

/* 사용자 비밀번호 변경 */
set password for 'JH' @localhost = '1004';

set password for로 JH사용자의 비밀번호를

 

1004로 변경해줬습니다.

 

이제 해당 아이디와 비밀번호로 MySQL 서버로

 

이동해보겠습니다.

 

 

 

MySQL 서버를 지정한 아이디와 비밀번호로 접속

빨간색으로 표시한 +버튼을 누르면 다음과 같은 화면이 뜹니다.

 

여기서 Username에 우리가 설정한 JH를 입력하고

 

밑의 비밀번호에 1004를 입력하면

 

이렇게 접속이 끝납니다.

 

이제 사용자에게 권한을 부여하거나 제거하는 것을

 

알아보겠습니다.

 

 

 

특정 권한 부여

/* 특정 권한 부여 */
grant select, delete on da.인적사항 to 'JH' @localhost;

권한에는 create, alter, drop, insert, delete, update, select 등등이 있는데

 

grant를 이용하여 

 

저번에 설정한 da 데이터베이스의 인적사항 테이블을

 

JH 사용자에게 select와 delete 기능을 부여해줬습니다.

 

이제 제대로 부여받았는지 확인해보겠습니다.

 

 

 

특정 권한 받았는지 확인

use da;

select * from 인적사항;

이렇게 select * from 인적사항; 을 통해

 

인적사항 테이블을 불러오는 권한을 받은 것을 확인할 수 있습니다.

 

이제 delete를 사용해보겠습니다.

 

delete from 인적사항;
select * from 인적사항;

delete도 제대로 받은 것을 확인할 수 있죠.

 

이제 특정 권한을 삭제하는 방법을 알아볼게요.

 

 

 

특정 권한을 제거

/* 특정 권한 제거 */
revoke delete on da.인적사항 from 'JH' @localhost;

revoke를 이용하여 delete 권한을 제거해줬습니다.

 

확인해볼까요?

 

delete from 인적사항;

이제 delete가 작동하지 않는 것을 볼 수 있습니다.

 

이제 모든 권한을 부여하고 제거해보는 법을 알아보겠습니다.

 

 

 

모든 권한 부여 또는 제거

/* 모든 권한 부여 */
grant all on da.인적사항 to 'JH' @localhost;

/* 모든 권한 제거 */
revoke all on da.인적사항 from 'JH' @localhost;

기존의 특정 권한에서

 

all로 바꿔주는 방법입니다.

 

아주 간단하죠.

 

이제 마지막으로 사용자를 삭제해보겠습니다.

 

 

 

사용자 삭제

/* 사용자 삭제 */
drop user 'JH' @localhost;

drop user를 통해 JH 사용자를 삭제해줬습니다.

 

확인해보겠습니다.

 

select * from user;

JH 사용자가 삭제된 것을 확인할 수 있습니다.

 

다음 포스트에는 마지막 명령어인

 

트랜젝션 제어어(TCL)을 알아보겠습니다!

'데이터분석 공부 > SQL' 카테고리의 다른 글

[SQL] 데이터 조회 - SELECT  (0) 2022.04.21
[SQL] 트랜젝션 제어어(TCL)  (0) 2022.04.20
[SQL] 데이터 조작어(DML)  (0) 2022.04.19
[SQL] 데이터 정의어(DDL)  (0) 2022.04.18
[SQL] MySQL 및 Workbench 설치(mac OS)  (0) 2022.04.15