inblog logo
|
DailyCoding
    SQLD

    2-3-4. DCL

    박은서's avatar
    박은서
    Mar 02, 2026
    2-3-4. DCL
    Contents
    1. 유저와 권한1️⃣ DCL 명령의 기초 개념2️⃣ 유저2️⃣ 권한2. GRANT & REVOKE 명령어1️⃣ GRANT 명령어2️⃣ REVOKE 명령어3. Role을 이용한 권한 부여1️⃣ Role 기초 개념2️⃣ Role을 이용한 권한 부여
    💡
    DCL (데이터 제어어 : Data Control Language)

    1. 유저와 권한

    1️⃣ DCL 명령의 기초 개념

    1) DCL(Data Control Language)

    • 데이터베이스에서 사용자 권한을 관리하고 제어하는 데 사용되는 SQL 명령어
    • 데이터베이스 관리자(DBA)가 데이터베이스 사용자와 그들이 수행할 수 있는 작업을 관리하기 위해 사용됨

    2️⃣ 유저

    1) 유저

    • 데이터베이스에 접근할 수 있는 계정
    • 각 사용자는 고유한 유저 이름과 비밀번호 가지며, 이 계정을 통해 데이터베이스에 로그인하여 작업 수행
    • 데이터베이스 관리자는 새로운 유저를 생성하거나 유저의 권한을 설정하고 관리할 수 있음
      • CREATE USER 유저명 IDENTIFIED BY 패스워드;

    2️⃣ 권한

    1) 권한

    • 사용자가 데이터베이스에서 수행할 수 있는 작업의 범위
    • 권한은 일반적으로 데이터베이스 객체(예:테이블, 뷰)나 특정한 SQL 명령어(예:SELECT, INSERT, UPDATE, DELETE)에 대한 접근을 제어하는 데 사용됨
    • 사용자에게 직접 부여할 수 있으며, 특정 역할(Role)에 권한을 부여하고, 해당 역할을 사용자에게 부여할 수 있음

    2) 주요 권한

    • 시스템 권한(System Privileges)
      • 데이터베이스 전체에 영향을 미치는 작업에 대한 권한
      • 예) CREATE TABLE, CREATE USER, ALTER SYSTEM 등
    • 객체 권한(Object Privileges)
      • 특정 데이터베이스 객체(예: 테이블, 뷰, 프로시저)에 대한 접근 권한
      • 예) SELECT, INSERT, UPDATE, DELETE 등

    2. GRANT & REVOKE 명령어

    1️⃣ GRANT 명령어

    1) GRANT 명령어

    • 사용자나 역할(Role)에게 특정 권한 부여하는 데 사용됨

    2) 형식

    GRANT 권한명 ON 객체명 TO 유저명;

    3) 예시

    // bbigter 사용자에게 EMP 테이블에 대한 SELECT와 INSERT 권한 부여 GRANT SELECT, INSERT ON EMP TO bbigter;

    4) WITH GRANT OPTION

    • 유저가 부여받은 권한을 다른 사용자에게 다시 부여할 수 있도록 허용하는 옵션
    GRANT SELECT ON EMP TO bbigter WITH GRANT OPTION;

    2️⃣ REVOKE 명령어

    1) REVOKE 명령어

    • 사용자나 역할(Role)에게 특정 권한 회수하는 데 사용됨

    2) 형식

    REVOKE 권한명 ON 객체명 FROM 유저명;

    3) 예시

    // bbigter 사용자에게 EMP 테이블에 대한 SELECT와 INSERT 권한 회수 REVOKE SELECT, INSERT ON EMP FROM bbigter;

    3. Role을 이용한 권한 부여

    1️⃣ Role 기초 개념

    1) Role

    • 여러 권한을 하나로 묶어 관리할 수 있는 방법
    • 사용자의 권한 관리를 일괄적으로 할 수 있어 관리가 용이해지고 오류의 가능성 줄일 수 있음

    2️⃣ Role을 이용한 권한 부여

    1) Role 생성

    • 새로운 Role 생성하기 위해 CREATE ROLE 명령어 사용
    • 형식
      • CREATE ROLE Role명칭;
    • 예시
      • // hr_role이라는 이름의 새로운 Role 생성 CREATE ROLE hr_role;

    2) Role에 권한 부여

    • GRANT 명령으로 생성된 Role에 특정 권한 부여
    • 예시
      • // hr_role에 EMP 테이블에 대한 SELECT와 INSERT 권한 부여, 테이블 생성 권한도 부여 GRANT SELECT, INSERT ON EMP TO hr_role; GRANT CREATE TABLE TO hr_role;

    3) 사용자에게 Role 할당

    • 권한이 부여된 Role을 사용자에게 할당
    • 예시
      • // bbigter 유저에게 hr_role 할당하여, 해당 Role이 가진 모든 권한 부여 GRANT hr_role TO bbigter;

    4) 사용자에게 부여된 Role 회수

    • 사용자가 더 이상 특정 Role에 속하지 않도록 하려면 REVOKE 명령어를 사용해 해당 Role 회수
    • 예시
      • // bbigter 유저로부터 hr_role 회수하여, 더 이상 해당 Role이 가진 모든 권한 사용하지 못하게 함 REVOKE hr_role FROM bbigter;

    4) Role 삭제

    • 더 이상 필요하지 않은 Role 삭제
    • Role을 삭제하면 해당 Role에 속한 모든 사용자들은 해당 Role로부터 부여받은 권한 잃음
    • 예시
      • DROP ROLE hr_role;
    Share article
    Contents
    1. 유저와 권한1️⃣ DCL 명령의 기초 개념2️⃣ 유저2️⃣ 권한2. GRANT & REVOKE 명령어1️⃣ GRANT 명령어2️⃣ REVOKE 명령어3. Role을 이용한 권한 부여1️⃣ Role 기초 개념2️⃣ Role을 이용한 권한 부여

    DailyCoding

    RSS·Powered by Inblog