본문 바로가기
DBMS/ORACLE

[ORACLE] 오라클_시노님( Synonym )이란? - 개념 및 사용법

by 썸머워즈 2019. 2. 20.
반응형

SYNONYM

  • 쉽게 말해서 ALIAS 같이 이름을 줄여주는 역할을 한다라고 생각하면 된다.
  • 시노님(Synonym)은 테이블의 이름을 설정해 주는것이다.
  • 보통 다른 유저의 객체(테이블, 뷰, 프로시저, 함수, 패키지, 시퀀스 등)를 참조할 때 많이 사용한다.
  • 실제로 SYNONYM을 이용하는 이유는 다른 유저의 객체를 사용할 때 유저의 이름과 객체의 실제 이름을 사용하는데, 그 두 개를 감춤으로써 데이터베이스의 보안을 개선하기 위해 사용된다.

시노님(Synonym) 생성

▷ 구문

CREATE [ PUBLIC ] SYNONYM [ 시노님 이름 ]
FOR [ 객체 이름 ]

* PUBLIC은 모든 사용자가 접근이 가능하도록 설정해주는 것이다.

* PUBLIC을 선언해주지 않으면 기본값으로 PRIVATE가 선언된다.

 

예제를 통해 좀 더 시노님을 생성해서 사용하는 이유에 대해 상세하게 알아보자.

일단 유저가 두 명 (user1 / user2)가 있다고 가정할 때,

user1이 가지고 있는 테이블에 대해 user2가 접근이 가능하도록 권한을 주어야 한다.

GRANT ALL ON oracleStudy TO user2; 
-- GRANT SELECT ON oracleStudy TO user2;

여기서는 조작 권한을 주고 싶으면 ALL, 조회 권한만 주고자 한다면 SELECT만 사용하면 된다.

 

이제 user2가 user1의 oracleStudy 테이블에 접근해 보도록 해보자.

SELECT * FROM user1.oracleStudy;

이럴 경우 본문 초반에 설명한 것처럼 실제 유저의 이름과 객체명을 그대로 사용해서 접근하는 것을 볼 수 있는데,

여기서 synonym을 사용해주면 된다.

CREATE SYNONYM u1_oralStudy FOR user1.oracleStudy;

이런 식으로 시노님(Synonym)을 생성해주면, synonym으로 만든 이름으로 접근이 가능하다.

SELECT * FROM u1_oralStudy;

시노님(Synonym) 삭제

DROP SYNONYM u1_oralStudy;
반응형


댓글

TOP