본문 바로가기
Database

[ORACLE] ALL_LIBRARIES 뷰 실무 활용 가이드

by Dev. Orion 2025. 6. 24.

오라클 ALL_LIBRARIES 뷰 실무 활용 가이드
[Oracle] ALL_LIBRARIES

 

Oracle 데이터베이스는 복잡한 연산을 효율적으로 처리하기 위해 외부 라이브러리(Shared Libraries)를 호출할 수 있는 기능을 제공합니다. 이때 PL/SQL에서 외부 C 라이브러리를 호출하려면 LIBRARY 객체를 생성해야 하며, 이 객체의 메타데이터는 ALL_LIBRARIES 뷰를 통해 확인할 수 있습니다. 본 글에서는 Oracle의 ALL_LIBRARIES 뷰가 제공하는 정보와 구조, 실무 활용법 및 보안적 고려 사항까지 포함하여 상세히 설명합니다.

1. ALL_LIBRARIES란?

ALL_LIBRARIES는 현재 사용자가 접근할 수 있는 모든 라이브러리 객체의 정보를 제공하는 Oracle 데이터 딕셔너리 뷰입니다. 라이브러리는 C 언어나 외부 환경에서 작성된 기능을 Oracle 내부에서 호출할 수 있도록 연결하는 객체로, DBMS와 OS 사이의 인터페이스 역할을 수행합니다.

주요 용도

  • 외부 함수(C/C++)를 Oracle에서 호출하기 위한 인터페이스
  • 성능이 중요한 연산을 C 라이브러리로 처리
  • 보안, 로깅, 네트워크 통신 등 DB 확장 기능 구현

2. 주요 컬럼 설명

컬럼명 설명
OWNER 라이브러리 객체를 소유한 스키마 이름
LIBRARY_NAME 라이브러리 객체 이름
FILE_SPEC 외부 라이브러리 파일의 경로 또는 식별자
PLATFORM 라이브러리가 실행될 플랫폼 정보
DETERMINISTIC 결정적 함수인지 여부 (Y/N)

3. 실무 활용 예시

등록된 모든 라이브러리 객체를 조회하는 기본적인 쿼리는 다음과 같습니다.

SELECT 
  library_name, 
  file_spec, 
  platform, 
  deterministic 
FROM 
  ALL_LIBRARIES;

이 정보를 통해 특정 라이브러리가 시스템 어디에 위치해 있고, 어떤 방식으로 동작하는지를 파악할 수 있습니다.

4. 외부 라이브러리 사용 예시

다음은 외부 C 라이브러리를 Oracle에서 사용하는 예시입니다.

CREATE OR REPLACE LIBRARY my_c_lib 
AS '/usr/lib/oracle/libmyfunc.so';

CREATE OR REPLACE FUNCTION fast_math(x NUMBER) 
RETURN NUMBER 
AS EXTERNAL 
LIBRARY my_c_lib 
NAME "fast_add"
LANGUAGE C
PARAMETERS (x DOUBLE);

위와 같은 방식으로 외부 C 라이브러리의 함수를 등록하고 사용할 수 있으며, ALL_LIBRARIES를 통해 해당 라이브러리 등록 정보를 검토할 수 있습니다.

5. 관련 뷰 비교

뷰 이름 설명 특징
ALL_LIBRARIES 사용자가 접근 가능한 라이브러리 객체 정보 보안 및 경로 정보 포함
DBA_LIBRARIES DB 전체의 라이브러리 객체 정보 DBA 권한 필요
USER_LIBRARIES 현재 사용자 소유의 라이브러리 정보 접근이 간편함

6. 실무 활용 팁

  • 파일 경로 검증: FILE_SPEC 경로가 OS 권한 상 접근 가능한 경로인지 사전 확인 필요
  • 보안 감사: 외부 라이브러리는 OS 자원을 사용하므로 반드시 SYSDBA 수준에서 검토
  • 결정성 판단: DETERMINISTIC 옵션은 쿼리 재사용 및 성능에 영향
  • 라이브러리 변경 시 유의: .so 또는 .dll 파일 수정 후 Oracle 세션 재시작이 필요한 경우 존재

7. 보안 고려 사항

외부 라이브러리는 Oracle DB 외부에서 실행되는 코드이므로, 보안 리스크를 항상 고려해야 합니다. 특히 다음과 같은 보안 정책이 권장됩니다.

  • 라이브러리 경로를 읽기 전용 디렉터리에 배치
  • DB 사용자에게 라이브러리 객체의 생성 권한을 제한적으로 부여
  • DBMS_ASSERT 또는 자체 검증 로직을 통해 외부 입력값 검증

8. 결론

ALL_LIBRARIES 뷰는 Oracle 데이터베이스에서 외부 기능을 통합할 때 매우 중요한 메타데이터를 제공합니다. 고성능 처리, 외부 시스템 연동, 보안 분석 등 다양한 상황에서 이 뷰를 적극적으로 활용함으로써, 보다 확장성 있는 데이터베이스 아키텍처를 구현할 수 있습니다.

출처

  • Oracle Database 19c PL/SQL Packages and Types Reference
  • Oracle Database 19c Security Guide
  • Oracle External Procedures Documentation - 공식 문서
  • 2020~2025 외부 연동 기반 시스템 설계 실무 경험