Oracle 데이터베이스는 강력한 사용자 인증과 접근 제어 기능을 제공하며, 특히 패스워드 보안 정책은 전체 보안 전략의 핵심 요소 중 하나입니다. Oracle 12c 이후부터는 USER_PASSWORD_LIMITS
뷰를 통해 각 사용자의 패스워드 정책 제한 정보를 확인할 수 있도록 지원하며, 이는 보안 규정 준수 및 감사 대응 시 매우 유용한 정보를 제공합니다. 본 글에서는 이 뷰의 구조와 실무에서 어떻게 활용할 수 있는지를 깊이 있게 다루고, 실제 운영 환경에서 적용 가능한 보안 전략을 함께 제시합니다.
1. USER_PASSWORD_LIMITS란?
USER_PASSWORD_LIMITS
는 Oracle 12c부터 도입된 Unified Auditing 및 보안 프로파일 관리 기능의 일환으로 제공되는 뷰입니다. 각 사용자가 연결된 프로파일(Profile)에 의해 설정된 패스워드 관련 제한값을 확인할 수 있습니다. 이 뷰는 DBA_USERS
또는 DBA_PROFILES
보다 사용자 중심으로 구성되어 있어, 특정 계정의 정책을 빠르게 파악할 수 있는 장점이 있습니다.
2. 주요 컬럼 설명
컬럼명 | 설명 |
---|---|
USERNAME | 패스워드 정책이 적용된 사용자 이름 |
PROFILE | 사용자가 속한 보안 프로파일 이름 |
LIMIT_NAME | 제한 항목명 (예: PASSWORD_LIFE_TIME, FAILED_LOGIN_ATTEMPTS 등) |
LIMIT_VALUE | 설정된 제한값 (예: 90, UNLIMITED, 5 등) |
3. 대표적인 제한 항목 비교
LIMIT_NAME | 설명 | 권장값 (보안 기준) |
---|---|---|
PASSWORD_LIFE_TIME | 패스워드 유효 기간 (일 단위) | 90 |
PASSWORD_GRACE_TIME | 패스워드 만료 전 경고 기간 | 7 |
PASSWORD_REUSE_TIME | 이전 패스워드 재사용 제한 기간 | 365 |
PASSWORD_REUSE_MAX | 재사용 전 최소 변경 횟수 | 5 |
FAILED_LOGIN_ATTEMPTS | 로그인 실패 허용 횟수 | 5 |
ACCOUNT_LOCK_TIME | 잠금 유지 시간 (일) | 1 |
4. 사용자별 정책 확인 예시
-- 모든 사용자에 대한 패스워드 제한 정보 조회
SELECT username, profile, limit_name, limit_value
FROM user_password_limits
ORDER BY username, limit_name;
-- 특정 사용자 패스워드 정책 확인
SELECT limit_name, limit_value
FROM user_password_limits
WHERE username = 'APP_USER';
이러한 쿼리를 통해 운영자나 보안 담당자는 계정별로 적용된 패스워드 정책을 명확히 파악하고, 보안 정책 위반 또는 허술한 설정이 있는지를 빠르게 점검할 수 있습니다.
5. USER_PASSWORD_LIMITS vs DBA_PROFILES
구분 | USER_PASSWORD_LIMITS | DBA_PROFILES |
---|---|---|
조회 대상 | 사용자 기반 | 프로파일 기반 |
실무 활용성 | 계정별 정책 점검에 용이 | 정책 정의 기준으로 유용 |
복잡성 | 간단하고 직관적 | JOIN 필요 (DBA_USERS 연동) |
6. 실무 적용 전략
- 보안 감사 대응: 사용자별 보안 정책 로그로 활용
- 자동 점검 스크립트 구성: 비표준 정책 탐지 자동화
- 패스워드 만료 알림 시스템 연동: 패스워드 변경 주기 도입
- 공통 프로파일 사용 유도: 보안 정책 일관성 확보
- 잠금 계정 관리: 실패 횟수 기반 계정 잠금 추적 및 경보 설정
7. 운영 자동화 예시
-- 보안 기준을 벗어난 사용자 탐지 (예: PASSWORD_LIFE_TIME이 UNLIMITED인 계정)
SELECT username
FROM user_password_limits
WHERE limit_name = 'PASSWORD_LIFE_TIME'
AND limit_value = 'UNLIMITED';
-- 로그인 실패 제한이 없는 계정 탐지
SELECT username
FROM user_password_limits
WHERE limit_name = 'FAILED_LOGIN_ATTEMPTS'
AND limit_value = 'UNLIMITED';
8. USER_PASSWORD_LIMITS 뷰를 활용한 보안 감사 체크리스트
체크 항목 | 기준 | 점검 방법 |
---|---|---|
패스워드 만료 주기 | 90일 이하 | PASSWORD_LIFE_TIME 확인 |
이전 패스워드 재사용 방지 | 최소 5회 변경 또는 365일 | PASSWORD_REUSE_TIME, PASSWORD_REUSE_MAX |
로그인 실패 제한 | 5회 이하 | FAILED_LOGIN_ATTEMPTS |
계정 잠금 지속 시간 | 1일 이하 | ACCOUNT_LOCK_TIME |
9. 결론
Oracle의 USER_PASSWORD_LIMITS
뷰는 사용자 단위의 패스워드 보안 정책을 명확하게 파악할 수 있는 실무 중심 도구입니다. 이 뷰를 적극적으로 활용하면 각 계정의 보안 정책 상태를 빠르게 점검하고, 조직의 보안 규정에 맞는 정책으로 통합 관리할 수 있습니다. 특히 점점 강화되는 내부 정보보호 기준 및 외부 컴플라이언스 대응에도 매우 효과적입니다.
출처:
- Oracle Database 21c Security Guide - Oracle Corporation
- Oracle DBA Security Audit Best Practices
- 실제 금융권 DBA 운영 감사 대응 사례 기반
'Oracle' 카테고리의 다른 글
[ORACLE] USER_QUEUES : 오라클 AQ 큐 상태 실시간 모니터링과 운영 전략 (0) | 2025.07.19 |
---|---|
[ORACLE] USER_POLICIES : VPD 기반 데이터 보안 정책 조회와 운영 전략 (0) | 2025.07.19 |
[ORACLE] USER_PART_TABLES : 파티션 테이블 구조 파악과 성능 최적화 전략 (0) | 2025.07.19 |
[ORACLE] USER_PART_LOBS : LOB 파티션 구조 분석과 최적화 전략 (0) | 2025.07.19 |
[ORACLE] USER_PART_KEY_COLUMNS : 파티션 키 컬럼 정보 조회 및 활용 전략 (0) | 2025.07.19 |