DBMS/개념

27_ DCL (Data Control Language)

seungwon-1 2025. 11. 1. 15:59

DCL(Data Control Language)은 데이터베이스 보안과 접근 제어를 담당하는 SQL 명령어 집합으로, 사용자의 권한을 부여하거나 회수하는 데 사용된다. 주로 데이터베이스 관리자(DBA)가 관리하며, 안전한 데이터베이스 운영을 위해 필수적인 요소이다.

 

 

주요 DCL 명령어

명령어설명
CREATE USER 새로운 데이터베이스 사용자 계정을 생성
DROP USER 기존 사용자 계정을 삭제
GRANT 특정 권한 또는 역할(Role)을 사용자에게 부여
REVOKE 사용자로부터 특정 권한을 회수

 

DBeaver에서 SYSDBA 연결 생성

  1. DBeaver 실행 → 새 데이터베이스 연결 선택
  2. Oracle 선택 후 다음 정보 입력
    • Host: localhost (또는 서버 IP)
    • Port: 1521
    • Database: orcl, xe 등 SID 입력
    • Username: sys
    • Role: SYSDBA
  3. 연결 테스트로 확인 후 완료

이제 SYSDBA 권한으로 SQL 편집기에서 계정 관리 명령어를 실행할 수 있다.

 

1. 계정 생성 및 권한 부여

-- 사용자 생성
CREATE USER newuser IDENTIFIED BY password123;

-- 기본 접속 권한 부여
GRANT CREATE SESSION TO newuser;

-- 테이블 및 뷰 생성 권한 부여
GRANT CREATE TABLE, CREATE VIEW TO newuser;

-- 롤(Role) 부여
GRANT CONNECT, RESOURCE TO newuser;

-- 특정 테이블 접근 권한 부여
GRANT SELECT, INSERT ON schema_name.table_name TO newuser;

2. 권한 확인 및 회수

-- 사용자 권한 조회
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'NEWUSER';
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'NEWUSER';

-- 특정 권한 회수
REVOKE INSERT ON schema_name.table_name FROM newuser;

-- 롤(Role) 회수
REVOKE RESOURCE FROM newuser;

3. 계정 삭제

-- 계정 삭제
DROP USER newuser CASCADE;

CASCADE 옵션은 사용자가 소유한 모든 객체(테이블, 뷰 등)도 함께 삭제한다.

 

주요 보안 고려사항

1. 강력한 비밀번호 정책 적용

Oracle에서는 SYS_PASSWORD_VERIFY 함수를 이용해 비밀번호 정책을 설정할 수 있다.

-- 비밀번호 정책 프로파일 생성
CREATE PROFILE password_policy LIMIT
  PASSWORD_VERIFY_FUNCTION SYS.PASSWORD_VERIFY_FUNCTION
  PASSWORD_LIFE_TIME 180
  PASSWORD_GRACE_TIME 7
  PASSWORD_REUSE_TIME 365
  PASSWORD_REUSE_MAX 5
  FAILED_LOGIN_ATTEMPTS 3
  PASSWORD_LOCK_TIME 1;

-- 프로파일을 사용자 계정에 적용
ALTER USER newuser PROFILE password_policy;

비밀번호 정책의 기본 조건은 다음과 같다:

  • 최소 8자 이상
  • 숫자 및 특수문자 포함
  • 사용자 이름과 동일한 비밀번호 사용 금지
  • 최근 비밀번호 재사용 제한

2. 최소 권한 원칙 (Principle of Least Privilege)

사용자에게는 업무 수행에 필요한 최소한의 권한만 부여해야 한다.
불필요한 SYSTEM 권한(DBA, ALTER SYSTEM 등)은 일반 사용자에게 부여하지 않는다.

 

3. 프로파일 설정

프로파일을 통해 다음 항목을 제한할 수 있다.

  • 세션 리소스 사용량 (CPU, 연결 시간 등)
  • 비밀번호 정책 (유효기간, 실패 횟수, 재사용 제한 등)

4. 감사(Audit) 설정

중요한 권한 변경, 로그인, DDL 수행 등을 감사(Audit) 기능으로 기록하여 보안 사고를 예방할 수 있다.

-- GRANT 명령어 감시 활성화
AUDIT GRANT ANY PRIVILEGE;

클라이언트 도구별 DCL 지원 현황

도구명                                                                    계정 관리                                          권한 관리
SQL*Plus 완전 지원 완전 지원
SQL Developer 완전 지원 완전 지원
TOAD 완전 지원 완전 지원
DataGrip 제한적 지원 제한적 지원
DBeaver 완전 지원 완전 지원

Oracle 환경에서는 SQL*Plus 또는 SQL Developer를 사용하는 것이 가장 안정적이며,

'DBMS > 개념' 카테고리의 다른 글

29_ Oracle DBMS: 제어문의 이해와 활용  (0) 2025.11.05
28_ Oracle 사용자 정의 함수  (0) 2025.11.03
26_ 트리거(TRIGGER) 정리  (0) 2025.10.30
25_ 정규표현식(Regular Expression)  (0) 2025.10.28
24_ DBMS 심화 주제  (0) 2025.10.26