반응형
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;
반응형
댓글