[Oracle DB] DCL (DATA CONTROL LANGUAGE)

방용환·2023년 5월 10일
0
post-thumbnail

1. 계정

  • 사용자 (USER) : 시스템(DBMS)을 사용할 수 있는 객체
  • 계정 (ACCOUNT) : 권한을 가진 사용자
  • 계정 관리는 시스템 관리자(SYSDBA - SYS 계정)만 가능
  • DBA_USERS : 사용자 정보를 제공하는 딕셔너리

1. 계정 생성

CREATE USER 계정명 INDENTIFIED BY 비밀번호

2. 계정 확인

CREATE USER 계정명 INDENTIFIED BY 비밀번호

3. 계정 비밀번호 변경

  • 계정의 비밀번호는 기본적으로 180일의 유효기간으로 설정
ALTER USER 계정명 INDENTIFIED BY 비밀번호

4. 계정 상태 변경

  • OPEN : 계정 활성화 (DBSM 서버 접속 가능)
  • LOCK : 계정 비활성화 (DBSM 서버 접속 불가능)
  • 오라클 서버 접속시 계정의 비밀번호를 5번 틀리면 계정의 상태가 자동으로 LOCK 상태로 변경
ALTER USER 계정명 ACCOUNT (LOCK | UNLOCK)

5. 계정의 테이블스페이스 변경

  • 테이블스페이스 (TABLESPACE) : 데이터베이스 객체(테이블, 뷰, 시퀀스, 인덱스 등)가 저장되는 장소
ALTER USER 계정명 DEFAULT TABLESPACE 테이블스페이스명

6. 테이블스페이스에 대한 계정의 사용 가능한 물리적 저장크기 변경

DBA_TS_QUOTAS : 계정의 물리적 저장크기 확인 (테이블스페이스의 물리적 저장크기 제한 관련 정보를 제공하는 딕셔너리)

ALTER USER 계정명 QUOTA 제한크기 ON 테이블스페이스

7. 계정 삭제

DROP USER 사용자명

2. DCL (DATA CONTROL LANGUAGE)

1. DCL (DATA CONTROL LANGUAGE)

  • DCL (DATA CONTROL LANGUAGE) : 데이터 제어어
  • 계정에게 권한을 부여하거나 회수하는 SQL 명령
  • 오라클 권한 (ORACLE PRIVILEGE) : 시스템 권한(관리자)과 객체 권한(일반 사용자)으로 구분
  • 시스템 권한 시스템을 구성하는 객체를 관리하기 위한 명령(DDL)에 대한 사용 권한

2. 시스템 권한을 계정에게 부여

GRANT [PRIVILEGE | ROLE], [PRIVILEGE | ROLE], ...
	TO [계정명 | PUBLIC] [WITH ADMIN OPTION] [IDENTIFIED 비밀번호]
  • 롤 (ROLE) : 시스템 권한을 그룹화하여 사용하는 이름
  • 계정명 대신 PUBLIC 키워드를 사용하면 모든 계정에게 일괄적으로 시스템 권한 부여
  • WITH ADMIN OPTION : 부여 받은 시스템 권한을 다른 계정에게 부여하거나 회수하는 권한을 제공하는 기능
  • 시스템 권한을 부여받은 계정이 없는 경우 자동으로 계정 생성
  • GRANT 명령에 의해 계정이 생성된 경우 반드시 IDENTIFIED BY 키워드를 사용하여 비밀번호 설정

3. 시스템 권한 회수

reovke [PRIVILEGE | ROLE], [PRIVILEGE | ROLE], ...
	from [계정명 | PUBLIC] [WITH ADMIN OPTION]

4. 롤 (ROLE)

  • 롤 (ROLE) : 관리자가 계정의 시스템 권한을 효율적으로 관리하기 위해 사용하는 시스템 권한 그룹
  • 오라클에서 기본적으로 제공되는 롤 : CONNECT, RESOURCE, DBA 등
  • CONNECT : 기본적인 시스템 권한 그룹 (CREATE SESSION, CREATE TABLE, ALTER TABLE, CREATE SYNONYM 등)
  • RESOURCE : 객체 관련 시스템 권한 그룹 (CREATE TABLE, CREATE SEQUENCE, CREATE TRIGGER 등)

0개의 댓글