본문 바로가기
DB/Oracle

synonym(동의어) 의 개념 및 생성, 삭제

by 놀러와요 2019. 9. 6.
반응형

 SYNONYM

- 쉽게 말해서 ALIAS 같이 이름을 줄여주는 역할을 한다 생각하면 됩니다.

시노님(Synonym)은 테이블의 이름을 설정해 주는것입니다.

보통 다른 유저의 객체(테이블, 뷰, 프로시저, 함수, 패키지, 시퀀스 등)를 참조할 때 많이 사용을 합니다.

- 실제로 SYNONYM을 이용하는 이유는 다른 유저의 객체를 사용할때 유저의 이름과 객체의  실제이름을 사용하는데 그 두개를 감춤으로써 데이터베이스의 보안을 개선하기위해 사용되어집니다.

1.  시노님(Synonym) 생성

CREATE [ PUBLIC ] SYNONYM [ 시노님 이름 ]

FOR [ 객체 이름 ]

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

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

EX) 예를 들어보겠습니다.

일단은 유저가 두명이 있다고 가정하겠습니다.( user1 / user2 )

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

 

GRANT ALL ON oracleStury TO user2;

 

-- user2에게 테이블 조작 권한 부여

 

GRANT SELECT ON oracleStury TO user2;

 

-- user2에게 테이블 SELECT 권한 부여

(조작 권한을 주고 싶으면 ALL을 아니면 SELECT 권한만 부여하고 싶으면 SELECT만 사용하시면 됩니다. 둘중하나)

이제 user2가 user1의 oracleStudy 테이블에 접근해보도록 하겠습니다.

 

SELECT * FROM user1.oracleStudy;

 

 

앞에 해당 유저의 이름을 붙여주고 .(점) 테이블 이름을 적어줘야 조회가 가능합니다.(물론 조회권한 필요)

이제 synonym을 사용하여 테이블 이름을 바꿔줍시다.

 

CREATE SYNONYM u1_oralStudy FOR user1.oracleStudy;

 

이제 시노님으로 만든 이름을 사용할 수 있게 되었습니다.

 

SELECT * FROM u1_oralStudy;

 

 

위의 user1.oracleStudy 와 u1_oralStudy 의 값이 동일하게 나올것입니다.

2  시노님(Synonym) 삭제

 

DROP SYNONYM u1_oralStudy; 

 

삭제는 매우 간단하죠?

다른 계정에 있는 테이블을 가져다 쓰는 경우는 아직까지는 보지 못했지만 

사용하게 될경우 보안상에 문제가 있을수 있으니 SYNONYM 을 사용해주시면 되겠습니다.

출처 : https://mine-it-record.tistory.com/68

반응형

'DB > Oracle' 카테고리의 다른 글

[오라클] RAC(Real Application Cluster)이란?  (0) 2019.09.06
오라클 트리거란?  (0) 2019.09.06
SQL문 실행 순서  (0) 2019.09.06
오라클 제품종류 및 라이센스 정책(10g 기준)  (0) 2019.09.06
ORA-00907 에러 대처법  (0) 2019.09.06