DCL(Data Control Language)은 데이터베이스 보안과 접근 제어를 담당하는 SQL 명령어 집합으로, 사용자의 권한을 부여하거나 회수하는 데 사용된다. 주로 데이터베이스 관리자(DBA)가 관리하며, 안전한 데이터베이스 운영을 위해 필수적인 요소이다.
주요 DCL 명령어
명령어설명
| CREATE USER | 새로운 데이터베이스 사용자 계정을 생성 |
| DROP USER | 기존 사용자 계정을 삭제 |
| GRANT | 특정 권한 또는 역할(Role)을 사용자에게 부여 |
| REVOKE | 사용자로부터 특정 권한을 회수 |
DBeaver에서 SYSDBA 연결 생성
- DBeaver 실행 → 새 데이터베이스 연결 선택
- Oracle 선택 후 다음 정보 입력
- Host: localhost (또는 서버 IP)
- Port: 1521
- Database: orcl, xe 등 SID 입력
- Username: sys
- Role: SYSDBA
- 연결 테스트로 확인 후 완료
이제 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 |