[Oracle] 오라클 시노님(Synonym) 생성 및 사용법 쉽게 정리

오라클에서 쿼리문을 작성할 때 스키마명(소유자명)을 붙이지 않고 테이블을 사용하고 있다면 해당 테이블의 시노님을 사용하고 있는 것이다. 시노님(Synonym)의 뜻은 동의어이며 일종의 별칭이라고 생각하면 된다. 시노님은 Table, View, Procedure, Function, Sequence 등의 오라클 오브젝트에 사용 가능하다.

 

오라클 SYNONYM 문법

① OR REPLACE : 시노님을 수정할 때 DROP 하지 않고 기존 생성 쿼리를 사용하여 수정할 수 있다. 

② PUBLIC : PUBLIC를 생략하면 PRIVATE로 시노님이 생성된다.

③ [스키마명].시노님명 : 자신의 계정에서 시노님을 생성할 경우 [스키마명]은 생략이 가능하며, 타 계정에서 시노님을 생성해 줄 경우 명시해야 한다.

 

PUBLIC과 PRIVATE 차이

PUBLIC : PUBLIC 시노님으로 생성할 경우 대상 오브젝트의 권한을 가지고 있는 모든 스키마에 해당 시노님을 사용할 수 있다. 스키마마다 시노님을 생성해 줄 필요 없음.
PRIVATE : 시노님을 생성한 스키마에서만 해당 시노님을 사용할 수 있다. (scott 계정에서 시노님을 생성하였다면 scott 계정에서만 해당 시노님을 사용가능 함)

 

시노님(Synonym)을 사용하는 이유

  • 오브젝트명을 짧게하여 SQL문을 단순화 시킬수 있다.
  • 스키마, 오브젝트명(테이블명 등)이 변경 되어도 시노님만 재생성하면 SQL문은 변경하지 않아도 된다.
  • 오브젝트를 외부에 제공할 경우 스키마, 오브젝트명을 숨길 수 있어서 보안에 도움이 된다.

 

PRIVATE 시노님 생성

CREATE SYNONYM employees FOR hr.employees

 

PRIVATE 시노님을 생성하였으며, 스키마명(hr)을 생략해도 SQL문을 사용할 수 있다.

CREATE SYNONYM emp FOR hr.employee

 

스키마 생략 뿐만 아니라 테이블명도 더 짧게 줄여서 시노님을 생성할 수 있다.

PUBLIC 시노님 생성

CREATE PUBLIC SYNONYM employees FOR hr.employees

 

PUBLIC 시노님으로 생성한 경우 hr.employees 테이블의 권한을 가진 모든 스키마에서 해당 시노님을 사용할 수 있다. 이후에 테이블 권한만 부여하면 시노님 권한은 자동으로 부여된다.

 

PUBLIC 시노님은 주로 DBA 권한의 계정에서 생성함

 

그외 시노님 생성

CREATE SYNONYM f_dept FOR hr.fn_get_dept_name

 

함수(FUNCTION), 프로시저(PROCEDURE) 등 객체의 시노님을 생성할 수 있다.

 

CREATE SYNONYM emp FOR employees@dl_hr

 

디비링크(DB Link)에도 시노님을 생성할 수 있다.

 

시노님 삭제

DROP SYNONYM employees;
DROP PUBLIC SYNONYM employees;

 

PUBLIC 시노님은 꼭 PUBLIC를 붙여서 삭제해야 한다.

 

 

댓글

Designed by JB FACTORY