
Oracle 데이터베이스는 다중 사용자가 동시에 접속하는 환경에서 시스템 자원을 효율적으로 관리하기 위해 프로파일(Profile)을 통해 리소스 제한(Resource Limits)을 설정합니다. 이러한 제한 정책은 사용자의 세션, CPU 사용량, 비밀번호 보안 등의 기준으로 정의되며, 이 정보를 사용자 입장에서 조회할 수 있는 대표적인 뷰가 바로 USER_RESOURCE_LIMITS입니다. 본 문서에서는 USER_RESOURCE_LIMITS 뷰의 구조, 실제 리소스 제한 항목, 관련 관리 전략을 실무 중심으로 상세히 설명합니다.
1. USER_RESOURCE_LIMITS 뷰란?
USER_RESOURCE_LIMITS는 현재 사용자가 속한 프로파일(Profile)에 정의된 리소스 제한 정책을 확인할 수 있는 데이터 딕셔너리 뷰입니다. DBA가 설정한 자원 사용 정책을 사용자 입장에서 직접 확인할 수 있는 유일한 뷰입니다.
2. 주요 컬럼 설명
| 컬럼명 | 설명 |
|---|---|
| RESOURCE_NAME | 제한되는 자원 이름 (예: SESSIONS_PER_USER) |
| RESOURCE_TYPE | 자원 유형 (KERNEL 또는 PASSWORD) |
| LIMIT | 적용되는 제한 값 (예: 10, UNLIMITED 등) |
3. 자주 사용되는 리소스 제한 항목
| RESOURCE_NAME | RESOURCE_TYPE | 설명 |
|---|---|---|
| SESSIONS_PER_USER | KERNEL | 사용자당 동시 접속 가능한 세션 수 |
| CPU_PER_SESSION | KERNEL | 세션당 허용된 CPU 시간 |
| CONNECT_TIME | KERNEL | 세션 최대 접속 시간 (분) |
| FAILED_LOGIN_ATTEMPTS | PASSWORD | 비밀번호 실패 허용 횟수 |
| PASSWORD_LIFE_TIME | PASSWORD | 비밀번호 사용 기간 (일) |
4. 실전 예제: 현재 사용자 리소스 제한 확인
SELECT *
FROM USER_RESOURCE_LIMITS
WHERE RESOURCE_TYPE = 'KERNEL';
이 쿼리는 현재 로그인한 사용자의 커널 자원 제한 내역을 보여줍니다.
5. 관리 전략 및 실무 팁
- 비정상 종료 또는 대량 세션 생성 방지를 위해
SESSIONS_PER_USER제한을 설정 - 비밀번호 정책 강화를 위해
FAILED_LOGIN_ATTEMPTS및PASSWORD_LIFE_TIME활용 - 리소스 제한이
UNLIMITED인 경우, 보안 및 시스템 부하 고려하여 적절한 값으로 조정 필요 - 자주 접속 장애가 발생한다면 해당 계정의 리소스 제한 여부 우선 점검
6. 관련 뷰 비교표
| 뷰 이름 | 내용 | 접근 권한 | 용도 |
|---|---|---|---|
| USER_RESOURCE_LIMITS | 현재 사용자에게 적용된 리소스 제한 | 일반 사용자 | 개인 계정 리소스 정책 확인 |
| DBA_PROFILES | 모든 프로파일에 설정된 리소스 제한 | DBA | 시스템 전체 정책 관리 |
| USER_USERS | 현재 사용자의 프로파일명 확인 | 일반 사용자 | 어떤 프로파일이 적용 중인지 확인 |
7. 자주 묻는 질문 (FAQ)
Q1. LIMIT이 'UNLIMITED'로 되어 있으면 무제한인가요?
A. 네, 해당 자원에 대해 제한이 없음을 의미합니다. 하지만 실무에서는 보안 및 부하 문제로 인해 필요한 제한을 설정하는 것이 권장됩니다.
Q2. 리소스 제한을 직접 변경할 수 있나요?
A. 일반 사용자는 불가능하며, DBA가 ALTER PROFILE 명령어를 통해 변경해야 합니다.
Q3. 프로파일이 없는 사용자도 이 뷰에서 확인할 수 있나요?
A. 모든 사용자는 적어도 하나의 프로파일이 자동 할당되므로 항상 데이터가 존재합니다. 일반적으로 DEFAULT 프로파일이 기본으로 사용됩니다.
8. 결론
USER_RESOURCE_LIMITS 뷰는 Oracle 사용자가 자신의 계정에 적용된 리소스 제한 정책을 자율적으로 이해하고, 문제가 발생했을 때 빠르게 원인을 파악할 수 있도록 도와주는 매우 유용한 도구입니다. 효율적인 시스템 운영을 위해서는 개발자, 운영자 모두 이 정보를 숙지하는 것이 필요합니다.
9. 참고 문헌
- Oracle Database Security Guide – Oracle 공식 문서
- Oracle SQL Language Reference – PROFILE 및 USER_RESOURCE_LIMITS 관련 내용
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] USER_RSRC_CONSUMER_GROUP_PRIVS 완전 해설 : 사용자별 리소스 소비자 그룹 권한 파악하기 (0) | 2025.08.06 |
|---|---|
| [ORACLE] USER_ROLE_PRIVS 완전 해설 : 사용자에게 부여된 롤(Role) 권한 파악하기 (0) | 2025.08.06 |
| [ORACLE] USER_REPSITES 완전 해설 : 복제 그룹 내 사이트 구조를 이해하는 핵심 뷰 (0) | 2025.08.06 |
| [ORACLE] USER_REPSCHEMA 해설 : 복제 그룹 내 사용자 스키마 구성 확인하기 (0) | 2025.08.05 |
| [ORACLE] USER_REPRESOL_STATS_CONTROL 해설 : 복제 충돌 통계 수집을 제어하는 핵심 뷰 (0) | 2025.08.05 |