티스토리 뷰

Oracle 데이터 베이스를 관리하고 운영하기 위한 사용자 계정들이 필요합니다. 데이터베이스 설치 후 기본으로 제공되는 주요 사용자(sys, system)의 역할과 권한을 명확히 이해하는것은 DBA 업무의 기초입니다. 각 사용자의 특징과 권한 범위, 실무에서의 활용 방식을 상세히 살펴보겠습니다.

 

1. Oracle DB 사용자 권한 체계

 

1.1 권한의 분류

 

Oracle 에서 사용자에게 부여되는 권한은 두 가지 종류로 나뉩니다.

시스템 권한(System Privilege): 데이터베이스 전체에 영향을 미치는 작업을 수행할 수 있는 권한입니다. 예를 들어 사용자 생성, 테이블스페이스 관리, 데이터베이스 시작/종료 등이 있습니다.

 

객체 권한(Object Privilege): 특정 객체(테이블, 뷰, 시퀀스 등)에 대한 SELECT, INSERT, UPDATE, DELETE 등의 작업을 수행할 수 있는 권한입니다.

 

1.2 역할(Role)의 개념

Oracle 은 권한을 직접 사용자에게 부여하는 것 외에도 역할(Role) 을 통해 권한을 관리합니다. 역할은 권한들의 집합으로, 여러 사용자에게 동일한 권한을 효율적으로 부여할 수 있게 해줍니다. 가장 대표적인 역할이 바로 DBA 역할입니다.

 

2. SYS 계정: 데이터베이스의 최상위 관리자

 

2.1 SYS계정의 특징

 

SYS 계정은 Oracle 데이터베이스의 최고 관리자 계정입니다. 이 계정으로만 수행할 수 있는 작업들이 있으며, 데이터베이스의 안정성과 보안에 직결되는 중요한 역할을 합니다.

 

2.2 SYS 계정의 권한 범위

 

SYS 계정은 SYSDBA 권한을 가지고 있습니다. 이는 다음의 권한들을 포함합니다.

  • DBA 권한 : 일반적인 데이터베이스 관리 작업 수행 (사용자 생성/삭제, 테이블스페이스 관리, 인덱스 생성 등)
  • 데이터 베이스 생성 : 새로운 데이터베이스를 생성할 수 있음
  • 데이터베이스 시작/종료 : 데이터베이스 인스턴스를 시작하거나 종료할 수 있음
  • 시스템 권한 부여/회수: 다른 사용자에게 권한을 부여하거나 회수할 수 있음

2.3 SYS 계정 접속 및 활용

SYS 계정으로 접속할 때는 특별한 방식이 필요합니다.

-- SQL*Plus에서 SYS로 접속하는 방법
sqlplus / as sysdba
-- 또는
sqlplus sys/설정된 비밀번호 as sysdba

 

2.4 SYS 계정의 주요 작업 예시

-- 데이터베이스 시작
STARTUP;

-- 데이터 베이스 종료
SHUTDOWN IMMEDIATE;

-- 새로운 테이블스페이스 생성
CREATE TABLESPACE TS_DATA 
DATAFILE '/u01/oradata/TS_DATA.dbf' SIZE 100M;

-- 새로운 사용자 생성
CREATE USER c##new_user IDENTIFIED BY password;
GRANT CREATE SESSION TO c##new_user;

 

2.5 SYS 계정 보안 고려사항

 

SYS 계정은 데이터베이스의 핵심이기 때문에 보안이 매우 중요합니다. 강력한 비밀번호를 설정해야 합니다.

SYS 계정의 접속 이력을 모니터링하고 필요한 경우에만 사용합니다. 다음 쿼리로 SYS 접속 내역을 확인할 수 있습니다.

 

-- V$PWFILE_USERS를 통한 SYSDBA 권한 보유자 확인
SELECT USERNAME, SYSDBA, SYSOPER 
FROM V$PWFILE_USERS
WHERE SYSDBA = 'TRUE';

 

 

3. SYSTEM 계정 

 

SYSTEM 계정은 일상적인 데이터베이스 관리 작업을 수행하기 위한 계정입니다. SYS 계정과 달리 데이터베이스의 시작/종료는 할 수 없지만, 대부분의 DBA 업무를 수행할 수 있습니다.

 

3.2 SYSTEM 계정의 권한 범위

SYSTEM 계정은 DBA 역할을 가지고 있습니다. 이는 다음의 작업들을 가능하게 합니다.

  • 사용자 생성 및 삭제
  • 테이블스페이스 관리 (생성, 수정, 삭제)
  • 테이블스페이스 할당량 관리
  • 사용자 비밀번호 변경
  • 권한 부여 및 회수
  • 데이터베이스 감시 및 성능 모니터링

3.3 SYSTEM 계정의 주요 작업 예시

-- 사용자 생성
CREATE USER c##new_user IDENTIFIED BY password;

-- 기본 접속 권한 부여
GRANT CREATE SESSION TO c##new_user;

-- RESOURCE 역할 부여 (객체 생성 권한)
GRANT RESOURCE TO c##new_user;

-- 여거 권한 부여
GRANT CREATE TABLE, CREATE VIEW, CREATE SEQUENCE TO c##new_user;

-- 테이블스페이스 할당량 설정
ALTER USER c##new_user QUOTA 100M ON USERS;


-- 기존 사용자의 비밀번호 변경
ALTER USER c##user IDENTIFIED BY new_password;

-- 특정 사용자의 시스템 권한 조회
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'c##user';

-- 특정 사용자의 역할 조회
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'c##user';

-- 특정 역할에 포함된 권한 조회
SELECT * FROM ROLE_SYS_PRIVS WHERE ROLE = 'RESOURCE';


-- 테이블스페이스 조회
SELECT TABLESPACE_NAME, STATUS, EXTENT_MANAGEMENT, ALLOCATION_TYPE 
FROM DBA_TABLESPACES;

-- 테이블스페이스 생성 (SYSTEM 계정도 가능)
CREATE TABLESPACE newTableSpace 
DATAFILE 'location/location' SIZE 100M 
AUTOEXTEND ON NEXT 5M;

 

4. 문제 해경방법

 

-- 계정 잠금시
-- ORA-28000: the account is locked

-- SYSTEM 또는 SYS로 실행
ALTER USER c##hr ACCOUNT UNLOCK;

-- 필요시 비밀번호도 재설정
ALTER USER c##hr IDENTIFIED BY new_password;



-- 비밀번호 변경

-- 비밀번호도 재설정
ALTER USER c##user IDENTIFIED BY new_password;

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함