본문 바로가기
Database/Oracle

[ORACLE] USER_TABLESPACES 뷰로 테이블스페이스 접근 권한 완벽 분석

by Papa Martino V 2025. 8. 8.
728x90

USER_TABLESPACES 뷰로 테이블스페이스 접근 권한 완벽 분석
[ORACLE] USER_TABLESPACES

1. USER_TABLESPACES란?

USER_TABLESPACES는 Oracle 데이터베이스에서 현재 사용자가 사용할 수 있는 테이블스페이스 목록을 보여주는 데이터 딕셔너리 뷰입니다. 해당 뷰는 일반적으로 사용자의 기본 테이블스페이스 설정 또는 쿼리 작성 시 명시 가능한 대상 테이블스페이스 확인 용도로 활용됩니다. 주의: Oracle 표준 문서에 명확하게 정의된 공식 뷰는 아니며, 일부 버전 또는 보안 정책에서 기본적으로 보이지 않을 수 있습니다. 실무에서는 DBA_TABLESPACES 또는 USER_USERS와 함께 사용되는 경우가 많습니다.

2. 테이블스페이스란?

테이블스페이스(Tablespace)는 Oracle에서 데이터가 저장되는 **논리적 저장 단위**입니다. 각 테이블, 인덱스, 세그먼트는 하나 이상의 테이블스페이스에 저장됩니다.

  • USERS: 일반 사용자 데이터용
  • SYSTEM, SYSAUX: 데이터베이스 내부 메타데이터용
  • TEMP: 정렬 작업 등 임시 공간
  • UNDO: 트랜잭션 롤백 및 MVCC용

3. 대체로 함께 사용하는 뷰

뷰 이름 용도 설명
USER_TABLESPACES 접근 가능 테이블스페이스 현재 사용자 기준, 일부 버전에서만 지원
USER_USERS 기본 테이블스페이스 확인 DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE 확인 가능
DBA_TABLESPACES 모든 테이블스페이스 정보 DBA 권한 필요, 전체 관리용
DBA_DATA_FILES 물리적 저장 경로 확인 테이블스페이스별 데이터파일 상세 정보

4. 실전 활용 예제

-- 현재 사용자에게 설정된 기본 테이블스페이스 확인
SELECT USERNAME, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE
FROM USER_USERS;

-- DBA 권한이 있을 경우 전체 테이블스페이스 조회
SELECT TABLESPACE_NAME, STATUS, CONTENTS, EXTENT_MANAGEMENT
FROM DBA_TABLESPACES
ORDER BY TABLESPACE_NAME;
      

TIP: SQL 작성 시 CREATE TABLE ... TABLESPACE users 와 같이 직접 테이블스페이스를 지정할 수 있습니다.

5. 테이블스페이스 관리 시 고려사항

  • 용량 계획: USERS 테이블스페이스의 사용량 주기적 확인
  • 보안 격리: 사용자별 전용 테이블스페이스 설정 권장
  • 백업 전략 연계: 데이터파일 단위 백업과 연동하여 운영 안정성 강화

6. 결론

USER_TABLESPACES는 사용자에게 부여된 테이블스페이스 접근 범위를 확인하고, 논리적 저장 구조를 이해하는 데 활용할 수 있는 유용한 뷰입니다. Oracle의 저장 구조는 단순 파일 관리가 아니라, 세밀한 리소스 제어와 보안 정책을 기반으로 하므로, 권한 기반 접근 제어를 이해하는 것이 중요합니다.

참고 자료

728x90