[Oracle] 오라클 시노님(Synonym) 생성 및 사용법 쉽게 정리
- 데이터베이스/오라클
- 2021. 3. 30.
오라클에서 쿼리문을 작성할 때 스키마명(소유자명)을 붙이지 않고 테이블을 사용하고 있다면 해당 테이블의 시노님을 사용하고 있는 것이다. 시노님(Synonym)의 뜻은 동의어이며 일종의 별칭이라고 생각하면 된다. 시노님은 Table, View, Procedure, Function, Sequence 등의 오라클 오브젝트에 사용 가능하다.
① OR REPLACE : 시노님을 수정할 때 DROP 하지 않고 기존 생성 쿼리를 사용하여 수정할 수 있다.
② PUBLIC : PUBLIC를 생략하면 PRIVATE로 시노님이 생성된다.
③ [스키마명].시노님명 : 자신의 계정에서 시노님을 생성할 경우 [스키마명]은 생략이 가능하며, 타 계정에서 시노님을 생성해 줄 경우 명시해야 한다.
PUBLIC과 PRIVATE 차이
PUBLIC : PUBLIC 시노님으로 생성할 경우 대상 오브젝트의 권한을 가지고 있는 모든 스키마에 해당 시노님을 사용할 수 있다. 스키마마다 시노님을 생성해 줄 필요 없음. |
시노님(Synonym)을 사용하는 이유
|
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를 붙여서 삭제해야 한다.