본문 바로가기
Development/Database

[DB] ORACLE DB SYSTEM, SYS 암호 변경

by 은스타 2020. 4. 8.
반응형

Oracle DB SYSTEM 및 SYS 사용자 암호 변경 완벽 가이드

안녕하세요.

이번 포스팅은 Oracle 데이터베이스 관리자라면 반드시 알아야 할 SYSTEM 및 SYS 계정 암호 변경 방법에 대해 상세히 알아보겠습니다. 이 글에서는 다양한 환경과 상황에 맞는 암호 변경 방법을 단계별로 설명해 드리겠습니다.


목차

  1. Oracle 관리자 계정 개요
  2. 암호 변경 전 준비사항
  3. SQL*Plus를 사용한 암호 변경
  4. Oracle SQL Developer를 사용한 암호 변경
  5. 비밀번호를 잊어버렸을 때 재설정 방법
  6. Oracle Cloud(OCI)에서 암호 변경
  7. 암호 정책 설정 및 관리
  8. 보안 모범 사례
  9. 자주 발생하는 오류와 해결 방법
  10. 자주 묻는 질문

 

#1. Oracle 관리자 계정 개요

Oracle 데이터베이스는 기본적으로 두 개의 주요 관리자 계정을 제공합니다:

  • SYS: 최고 권한을 가진 관리자 계정으로, 데이터 딕셔너리 테이블 소유자입니다. SYSDBA 권한으로 로그인해야 합니다.
  • SYSTEM: 일반적인 관리 작업을 위한 관리자 계정으로, SYS보다는 약간 제한된 권한을 가집니다.

이 두 계정은 Oracle 데이터베이스를 관리하는 데 필수적이므로, 보안을 위해 주기적으로 암호를 변경하는 것이 중요합니다.

 

#2. 암호 변경 전 준비사항

암호 변경 작업을 진행하기 전에 다음 사항을 확인하세요:

  1. 현재 암호 확인: 현재 사용 중인 암호를 정확히 알고 있는지 확인
  2. 백업 준비: 중요한 변경 전에는 항상 데이터베이스 백업 수행
  3. 접속 권한 확인: 암호 변경에 필요한 적절한 권한 보유 여부 확인
  4. 비상 계획 수립: 문제 발생 시 복구 방법 미리 계획

 

#3. SQL*Plus를 사용한 암호 변경

SQL*Plus는 Oracle 데이터베이스와 상호 작용하는 가장 기본적인 도구입니다. 이를 사용하여 암호를 변경하는 방법은 다음과 같습니다.

SYSTEM 계정 암호 변경

-- SYSTEM으로 로그인
sqlplus system/현재_암호

-- ALTER USER 명령어로 암호 변경
ALTER USER system IDENTIFIED BY 새_암호;

SYS 계정 암호 변경

-- SYSDBA 권한으로 로그인
sqlplus sys/현재_암호 AS SYSDBA

-- ALTER USER 명령어로 암호 변경
ALTER USER sys IDENTIFIED BY 새_암호;

ALTER USER 명령어 다양한 옵션

-- 비밀번호 만료 없이 설정
ALTER USER system IDENTIFIED BY 새_암호 PASSWORD EXPIRE NEVER;

-- 다음 로그인 시 비밀번호 변경 강제
ALTER USER system IDENTIFIED BY 새_암호 PASSWORD EXPIRE;

-- 인증 방식 변경 (서버 인증)
ALTER USER system IDENTIFIED GLOBALLY AS '사용자_DN';

 

#4. Oracle SQL Developer를 사용한 암호 변경

GUI 도구인 Oracle SQL Developer를 사용하여 암호를 변경하는 방법입니다:

  1. Oracle SQL Developer 실행
  2. 관리자 계정으로 데이터베이스에 접속
  3. 좌측 패널에서 '기타 사용자' 폴더 확장
  4. SYSTEM 또는 SYS 사용자를 마우스 오른쪽 버튼으로 클릭
  5. '사용자 편집' 메뉴 선택
  6. '사용자 편집' 대화 상자에서 '인증된 사용자' 탭 선택
  7. 새 비밀번호 입력 및 확인 입력
  8. '적용' 버튼 클릭

이 방법은 직관적인 인터페이스를 제공하여 명령어를 기억할 필요 없이 암호 변경이 가능합니다.

 

#5. 비밀번호를 잊어버렸을 때 재설정 방법

SYS나 SYSTEM 암호를 잊어버린 경우 다음 단계를 따라 재설정할 수 있습니다:

방법 1: SYSDBA 접속 권한 사용

Oracle은 운영체제 인증을 통해 SYSDBA 권한으로 접속할 수 있습니다. 이 방법을 사용하면 암호 없이 접속이 가능합니다.

# Windows에서는 관리자 권한으로 명령 프롬프트 실행
# Linux/Unix에서는 oracle 사용자로 전환

# OS 인증으로 SYSDBA 접속
sqlplus / as sysdba

# 접속 후 암호 재설정
ALTER USER system IDENTIFIED BY 새_암호;
ALTER USER sys IDENTIFIED BY 새_암호;

방법 2: 데이터베이스 비상 시작 모드 사용

  1. 데이터베이스 종료: SHUTDOWN IMMEDIATE
  2. 비상 시작 모드로 시작:
-- NOMOUNT 모드로 시작
STARTUP NOMOUNT

-- 비상 시작 모드로 전환
ALTER DATABASE MOUNT;

-- 제한 세션 모드로 열기
ALTER DATABASE OPEN RESETLOGS;

-- 암호 재설정
ALTER USER sys IDENTIFIED BY 새_암호;
ALTER USER system IDENTIFIED BY 새_암호;

-- 정상 모드로 재시작
SHUTDOWN IMMEDIATE;
STARTUP;

방법 3: 암호 파일 재생성(orapwd 사용)

# Oracle 홈 디렉토리의 dbs 또는 database 폴더로 이동
cd $ORACLE_HOME/dbs  # Linux/Unix
cd %ORACLE_HOME%\database  # Windows

# 기존 암호 파일 백업
mv orapw$ORACLE_SID orapw$ORACLE_SID.bak  # Linux/Unix
rename orapw%ORACLE_SID% orapw%ORACLE_SID%.bak  # Windows

# 새 암호 파일 생성
orapwd file=orapw$ORACLE_SID password=새_암호 entries=5 force=y

 

#6. Oracle Cloud(OCI)에서 암호 변경

Oracle Cloud Infrastructure(OCI)에서 관리되는, 자율 데이터베이스(Autonomous Database)의 경우 암호 변경 방법이 약간 다릅니다:

  1. OCI 콘솔 로그인
  2. 자율 데이터베이스 대시보드로 이동
  3. 대상 데이터베이스 선택
  4. '데이터베이스 작업' 드롭다운 메뉴에서 '관리자 비밀번호 변경' 선택
  5. 새 비밀번호 입력 및 확인 후 '변경' 버튼 클릭

또는 SQL Developer Web 인터페이스를 통해 변경:

-- ADMIN 사용자로 로그인 후
ALTER USER admin IDENTIFIED BY 새_암호;

 

#7. 암호 정책 설정 및 관리

Oracle 데이터베이스에서 강력한 암호 정책을 설정하려면 프로파일을 사용합니다:

-- 새 프로파일 생성
CREATE PROFILE secure_profile LIMIT
  PASSWORD_LIFE_TIME 90        -- 암호 유효 기간 (일)
  PASSWORD_GRACE_TIME 7        -- 유예 기간 (일)
  PASSWORD_REUSE_TIME 365      -- 재사용 전 대기 기간 (일)
  PASSWORD_REUSE_MAX 10        -- 이전 암호 재사용 제한
  FAILED_LOGIN_ATTEMPTS 5      -- 로그인 실패 허용 횟수
  PASSWORD_LOCK_TIME 1         -- 계정 잠금 시간 (일)
  PASSWORD_VERIFY_FUNCTION ora12c_verify_function;  -- 암호 복잡성 검증 함수

-- 프로파일을 사용자에게 적용
ALTER USER system PROFILE secure_profile;
ALTER USER sys PROFILE secure_profile;

암호 복잡성 요구사항 설정

Oracle은 기본적으로 ora12c_verify_function이라는 암호 검증 함수를 제공합니다. 이 함수는 다음과 같은 요구사항을 적용합니다:

  • 최소 8자 이상
  • 최소 하나의 대문자, 소문자, 숫자 포함
  • 특수 문자 포함
  • 사용자 이름과 다름
  • 최근 사용한 암호와 다름

 

#8. 보안 모범 사례

Oracle 데이터베이스 관리자 계정 보안을 위한 모범 사례:

  1. 정기적인 암호 변경: 90일마다 주기적으로 암호 변경
  2. 강력한 암호 사용: 길고 복잡한 암호 사용 (12자 이상, 대소문자, 숫자, 특수문자 조합)
  3. 암호 재사용 금지: 최소 1년 이내 사용했던 암호 재사용 금지
  4. 최소 권한 원칙 적용: 일상적인 작업에는 SYSTEM이나 SYS 계정 대신 제한된 권한의 계정 사용
  5. 접근 제한: 관리자 계정에 대한 접근을 제한된 IP나 시스템으로 제한
  6. 감사 활성화: 관리자 계정 활동에 대한 감사 로깅 설정
-- 관리자 계정 활동 감사 설정
AUDIT ALL BY sys, system BY ACCESS;
AUDIT ALTER USER BY ACCESS;

 

#9. 자주 발생하는 오류와 해결 방법

암호 변경 시 발생할 수 있는 일반적인 오류와 해결 방법입니다:

ORA-01031: 권한이 불충분합니다

원인: 암호 변경에 필요한 권한이 없음
해결 방법: SYSDBA 권한으로 로그인하거나 ALTER USER 권한이 있는 계정으로 접속

ORA-28007: 비밀번호는 변경할 수 없습니다/잠겨 있습니다

원인: 계정이 잠겨 있거나 외부 인증 사용 중
해결 방법: 계정 잠금 해제 또는 인증 방식 확인

-- 계정 잠금 해제
ALTER USER system ACCOUNT UNLOCK;

ORA-01109: 데이터베이스가 열려 있지 않습니다

원인: 데이터베이스가 NOMOUNT 또는 MOUNT 상태에 있음
해결 방법: 데이터베이스를 OPEN 상태로 전환

ALTER DATABASE OPEN;

ORA-00600: 내부 오류 코드

원인: Oracle 내부 오류
해결 방법: Oracle 지원 센터에 문의하거나 데이터베이스 재시작

 

#10. 자주 묻는 질문

Q: SYS와 SYSTEM 계정의 차이점은 무엇인가요?

A: SYS는 데이터 딕셔너리 소유자로 최고 관리자이며 SYSDBA 권한으로 접속해야 합니다. SYSTEM은 일반 관리 태스크용 계정으로 SYS보다 제한된 권한을 가집니다.

Q: 얼마나 자주 암호를 변경해야 하나요?

A: 보안 정책에 따라 다르지만, 일반적으로 90일마다 변경하는 것이 권장됩니다. 중요한 운영 환경에서는 더 짧은 주기로 변경할 수 있습니다.

Q: 관리자 계정 암호를 잊어버렸는데 데이터베이스가 실행 중인 경우 어떻게 해야 하나요?

A: 운영체제 인증을 사용하여 SYSDBA로 접속한 후 암호를 재설정할 수 있습니다. sqlplus / as sysdba 명령을 사용하세요.

Q: DEFAULT 프로파일을 변경해도 괜찮을까요?

A: DEFAULT 프로파일을 변경하면 모든 사용자에게 영향을 미치므로 주의해야 합니다. 관리자 계정용 별도 프로파일을 만드는 것이 안전합니다.

Q: Oracle 19c에서 암호 변경 방법이 이전 버전과 다른가요?

A: 기본 명령은 동일하지만, 19c에서는 기본적으로 더 강력한 암호 정책이 적용됩니다. 또한 대소문자 구분이 기본으로 활성화되어 있습니다.


결론

이 글에서는 Oracle 데이터베이스의 SYSTEM 및 SYS 계정 암호 변경 방법에 대해 자세히 살펴보았습니다. 정기적인 암호 변경과 강력한 암호 정책 적용은 데이터베이스 보안의 기본입니다. Oracle 데이터베이스 관리자는 이러한 기본 보안 관행을 준수하여 중요한 데이터를 보호해야 합니다.

SQL*Plus, SQL Developer, 또는 OCI 콘솔 등 다양한 도구를 통해 암호 변경이 가능하며, 비밀번호를 잊어버렸을 때를 대비한 복구 방법도 숙지하고 있어야 합니다. 보안성과 사용 편의성 사이에서 적절한 균형을 맞추어 효과적인 암호 관리 전략을 수립하시기 바랍니다.

긴 글 읽어주셔서 감사합니다.

끝.

반응형