동의어(SYNONYM) 삭제 | ORACLE OBJECT INDEX (java로 웹개발하기)(day29)

동의어(SYNONYM) 삭제 | ORACLE OBJECT INDEX (java로 웹개발하기)(day29)

728x90

반응형

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;

728x90

반응형

LIST

from http://healthdevelop.tistory.com/83 by ccl(A) rewrite - 2021-10-11 11:00:59