본문으로 바로가기
반응형

 


 

 

SYNONYM 이란,,

 

 

 

 

사용자가 다른 사용자의 객체를 참조할 때 

[사용자ID].[테이블명]으로 표시하는데,

 

이처럼 길게 표현되는 것을 동의어(SYNONYM)로 설정 후
간단히 사용 가능한 객체를 말합니다.

 

 

 

예를들어 USER2 계정에서  USER1의  EMPLOYEE 테이블을 참조하고자 할 때,

 

USER1.EMPLOYEE  <- 이런 식으로 길게 작성해야 하죠.

 

이러한 불편함을 덜어주고자 SYNONYM이 사용됩니다.

 

 

 

 

 


 

▶ SYNONYM 종류

 

 

 

 

SYNONYM 종류는 두 가지로 구분됩니다.

 

 

 

비공개 동의어 공개 동의어가 있죠.

 

 

 

 

  ▷ 비공개 동의어

 

객체에 대한 접근 권한을 부여 받은 사용자가 정의한 동의어
해당 사용자만 사용 가능

 

 

 

 

  ▷ 공개 동의어

 

권한을 주는 사용자(DBA)가 정의한 동의어
모든 사용자가 사용 가능(PUBLIC) 

ex. DUAL

 

 

 

두 가지 동의어의 사용법이 각각 다릅니다.

 

 

한번 알아보도록 하죠.

 

 

 


 

● 비공개 동의어(PUBLIC 안씀)

 

 

 

 

 

첫 번째 줄 명령어와 같이 

 

PUBLIC을 사용하지 않고 SYNONYM을 CREATE 해주면 권한 오류가 발생합니다.

 

 

따라서 비공개 동의어를 사용하고자 할 때, 

SYSTEM 계정에 SYNONYM 생성 권한을 부여해줘야 합니다.

(GRANT CREATE SYNONYM TO "테이블명")

 

 

 

 

 


 

● 공개 동의어(PUBLIC 씀)

 

 

 

 

 

공개 동의어 생성은 간단합니다.

 

 

CREATE PUBLIC SYNONYM   <-   PUBLIC 명령어를 추가해줍니다.

 

 

이렇게 공개 동의어로 생성하게 되면

권한을 부여해 줄 필요 없이 어느 계정이든 사용이 가능합니다.

 

 

 

 

 

위 그림의 명령은

 

EMPLOYEE.DEPARTMENT 를 DEPT라는 SYNONYM으로 생성한 후,

 

SYSTEM 계정, EMPLOYEE 계정에서 DEPT로 조회한 경우입니다.(동일한 결과를 추출)

 

 

 

 

 

 

 


 

● 동의어 삭제

 

 

 

 

동의어 삭제는 간단합니다.

 

DDL 명령(DROP)을 통해

테이블을 삭제하듯 삭제해주면 됩니다.

 

EX)

DROP PUBLIC SYNONYM DEPT;

 

반응형