개발 지식/[DBMS] Oracle

[Oracle] DDL(7) - 시노님(SYNONYM)

devGSP 2022. 6. 21. 08:00
반응형
이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다.

Java(TM) 플랫폼 : 1.8.0_321
Oracle IDE : 4.1.5.21.78

 

시노님(SYNONYM)

 

개념

우리말 그대로 해석해 동의어라고도 칭한다. 주로 테이블 이름이 너무 길어 사용이 불편할 때 좀 더 간단하고 짧은 이름을 하나 더 만들어 주기 위해 사용하는 객체.

테이블, 뷰, 시퀀스 등 객체 이름 대신 사용할 수 있는 다른 이름을 부여함.

 

문법 및 사용 예시

 

시노님 생성

 

CREATE [PUBLIC] SYNONYM [동의어명] FOR [사용자.][객체명];

 

PUBLIC : 동의어를 데이터베이스 내 모든 사용자가 사용할 수 있도록 설정. 생략할 경우 동의어를 생성한 사용자만 사용 가능. 단, PUBLIC으로 생성되어도 본래 객체의 사용 권한이 있어야 사용 가능함(선택)
동의어명 : 생성할 동의어 이름(필수)
사용자. : 생성할 동의어의 본래 객체 소유 사용자를 지정. 생략할 경우 현재 접속한 사용자로 지정(선택)
객체명 : 동의어를 생성할 대상 객체 이름(필수)

 

생성에 앞서 시노님의 생성에는 별도 권한 부여가 필요하다. 따라서 시도를 할 경우 아래와 같은 오류 메시지를 보게 될 수도 있다.

 

syno_1

 

사용 중인 계정에 아래와 같은 명령어를 입력해 주자. (GRANT, REVOKE 관련 포스트 → 링크)

 

GRANT CREATE SYNONYM TO [계정명];
GRANT CREATE PUBLIC SYNONYM TO [계정명];

 

권한을 설정했으면 아래 쿼리를 실행해 보자.

 

-- DEPT 테이블의 시노님 생성
CREATE SYNONYM S_D FOR DEPT;
  
-- 시노님을 통한 DEPT 테이블 조회
SELECT * FROM S_D;

syno_2

 

 

시노님 삭제

 

DROP SYNONYM [동의어명];

 

DROP SYNONYM S_D;

SELECT * FROM S_D;

syno_3

 

시노님은 제거되었지만, 본래 테이블에는 영향을 주지 않는다.

 

SELECT * FROM DEPT;

syno_4

 

반응형