본문 바로가기
Database/Oracle

[ORACLE] ALL_SYNONYMS 뷰 완벽 해설과 실무 활용법

by Papa Martino V 2025. 6. 15.
728x90

오라클 ALL_SYNONYMS 뷰 완벽 해설과 실무 활용법
[Oracle] ALL_SYNONYMS

 

Oracle 데이터베이스를 설계하거나 운영하다 보면 시노님(Synonym)을 자주 접하게 됩니다. Synonym은 데이터베이스 객체(테이블, 뷰, 프로시저 등)에 별칭을 부여해 참조를 단순화하고, 보안을 강화하는 역할을 합니다. 이러한 시노님 정보를 관리하거나 분석할 때 유용한 뷰가 바로 ALL_SYNONYMS입니다. 본 글에서는 ALL_SYNONYMS 뷰의 구조와 기능을 상세히 설명하고, 실무에서 시노님을 어떻게 효율적으로 사용하는지 예제와 함께 소개합니다.

1. ALL_SYNONYMS란 무엇인가?

ALL_SYNONYMS는 Oracle 데이터베이스에서 사용자가 접근 가능한 모든 시노님에 대한 정보를 제공하는 시스템 뷰입니다. 이 뷰는 개인 시노님뿐 아니라, 공용 시노님(PUBLIC SYNONYMS)도 포함하고 있어, 전체 데이터베이스 내에서 참조 가능한 시노님 정보를 확인할 수 있습니다.

2. 주요 컬럼 설명

ALL_SYNONYMS 뷰의 주요 컬럼은 아래와 같습니다:

컬럼명 설명
OWNER 시노님을 생성한 사용자 (또는 PUBLIC)
SYNONYM_NAME 시노님의 이름
TABLE_OWNER 실제 참조되는 객체의 소유자
TABLE_NAME 실제 참조되는 객체의 이름
DB_LINK 원격 객체인 경우 데이터베이스 링크 이름

3. USER_SYNONYMS, ALL_SYNONYMS, DBA_SYNONYMS 비교

Oracle은 사용자 권한에 따라 다양한 시노님 뷰를 제공합니다. 아래는 그 차이를 정리한 표입니다:

뷰 이름 조회 대상 접근 권한
USER_SYNONYMS 자신이 생성한 시노님만 조회 일반 사용자
ALL_SYNONYMS 접근 가능한 모든 시노님 조회 일반 사용자
DBA_SYNONYMS 전체 스키마의 모든 시노님 조회 DBA 권한 필요

4. 실무 활용 예제

4.1 특정 사용자가 생성한 시노님 목록


SELECT SYNONYM_NAME, TABLE_NAME
FROM ALL_SYNONYMS
WHERE OWNER = 'HR';
  

4.2 공용(PUBLIC) 시노님만 조회


SELECT SYNONYM_NAME, TABLE_OWNER, TABLE_NAME
FROM ALL_SYNONYMS
WHERE OWNER = 'PUBLIC';
  

4.3 특정 테이블을 참조하는 모든 시노님 조회


SELECT OWNER, SYNONYM_NAME
FROM ALL_SYNONYMS
WHERE TABLE_NAME = 'EMPLOYEES'
  AND TABLE_OWNER = 'HR';
  

4.4 DB 링크를 사용하는 시노님 식별


SELECT SYNONYM_NAME, DB_LINK
FROM ALL_SYNONYMS
WHERE DB_LINK IS NOT NULL;
  

5. 시노님 활용 전략 및 주의사항

  • 보안 레이어 역할: 시노님은 직접 테이블명을 노출하지 않음으로써 보안성을 높일 수 있습니다.
  • 접근 편의성: 공용 시노님은 복잡한 스키마명을 생략하고 객체를 직접 호출할 수 있어 SQL을 간결하게 합니다.
  • 유지보수 주의: 시노님은 추적이 어려울 수 있으므로, 변경 추적이 필요한 경우 문서화가 반드시 필요합니다.
  • 의존성 확인: 시노님이 참조하는 객체가 삭제될 경우 에러가 발생하므로, ALL_DEPENDENCIES 뷰로 의존성 관리가 중요합니다.
  • 성능 영향 없음: 시노님은 단순한 참조 구조이므로 퍼포먼스에 영향을 주지 않으며, View와는 달리 실행 계획에 영향을 미치지 않습니다.

6. ALL_SYNONYMS를 활용한 점검 체크리스트

  • 같은 테이블을 참조하는 중복 시노님이 있는가?
  • 사용하지 않는 시노님은 삭제되었는가?
  • PUBLIC 시노님이 필요한 경우에만 정의되어 있는가?
  • DB 링크를 사용하는 시노님은 연결이 정상적으로 유지되는가?

7. Synonym vs View 비교

시노님과 뷰는 비슷하게 객체를 간접 참조할 수 있지만, 본질적으로 다른 기능입니다. 다음 표를 참고하세요:

항목 Synonym View
기능 객체에 대한 별칭 SELECT 결과 집합을 저장한 가상 테이블
데이터 보유 보유하지 않음 보유하지 않음
실행 계획 원본 객체와 동일 쿼리 복잡도에 따라 달라짐
보안 역할 접근 경로 숨김 접근 제한 및 필드 제어 가능

8. 결론

Oracle의 ALL_SYNONYMS 뷰는 데이터베이스 객체 참조를 단순화하고 보안을 강화하기 위한 시노님 정보를 분석하는 데 매우 유용합니다. 실무에서는 객체명을 바꾸지 않고도 백엔드를 변경하거나, 스키마 간 참조를 관리할 수 있는 강력한 기능을 제공합니다. 특히 공용 시노님은 사용자 편의성을 높이지만, 철저한 관리가 필요한 요소이므로 ALL_SYNONYMS 뷰를 주기적으로 활용해 점검하는 것이 좋습니다.

9. 참고자료

 

728x90