# Synonym


시노님은 오라클 객체(테이블, 뷰, 시퀀스, 프로시저)에 대한 대체이름(Alias)를 말합니다. 


Synonym은 실질적으로 그 자체가 Object가 아니라 Object에 대한 직접적인 참조 입니다.
 


시노님 사용 대상
데이터베이스의 투명성을 제공하기 위해서 사용 한다고 생각하면 됩니다.   시노님은 다른 유저의 객체를 참조할 때 많이 사용 합니다.
만약에 다른 유저의 객체를 참조할 경우가 있을 때 시노님을 생성해서 사용을 하면은   추후에 참조하고 있는 오프젝트가 이름을 바꾸거나 이동할 경우 객체를 사용하는 SQL문을 모두    다시 고치는 것이 아니라 시노님만 다시 정의하면 되기 때문에 매우 편리 합니다. 객체의 긴 이름을 사용하기 편한 짧은 이름으로 해서  SQL코딩을 단순화 시킬 수 있습니다. 또한 객체를 참조하는 사용자의 오브젝트를 감추 수 있기 때문에 이에 대한 보안을 유지할 수 있습니다.  시노님을 사용하는 유저는 참조하고 있는 객체를에 대한 사용자의 object의 소유자, 이름, 서버이름을  모르고 시노님 이름만 알아도 사용 할 수 있습니다.


   


# Synonym을 사용하는 이유


오브젝트의 실제 이름과 소유자 그리고 위치를 감춤으로써 database 보안을 개선하는데 사용 됩니다


Object에의 Public Access를 제공 합니다.


Remote Database의 Table, View, Program Unit를 위해 투명성을 제공 합니다.


Database 사용자를 위해 SQL 문을 단순화 할 수 있습니다.


   


# Synonym 종류


시노님에는 두가지 종류가 있습니다.  
Private Synonym  : 전용 시노님은 특정 사용자만  이용할수 있습니다.
Public Synonym : 공용 시노님은 공용 사용자 그룹이 소유하며 그 Database에 있는 모든 사용자가 공유 합니다.


   


# Synonym 생성 문법


scott USER의 emp테이블을 test USER가 사용 하는 예제.


   


1. 먼저 scott/tiger USER로 접속해서 test USER에게 emp테이블을 조작할 권한을 부여합니다.


 


SQL>GRANT ALL ON emp TO test;


è test user에 대하여 scott의 emp테이블을 조작할 수 있는 권한을 부여합니다.


   


2. test USER로 접속해 동의어를 생성합니다.


SQL> connect test/test


SQL> CREATE SYNONYM scott_emp FOR scott.emp ;


è scott USER가 소유하고 있는 emp 테이블에 대해 scott_emp라는 일반 시노님을 생성했습니다.


scott 사용자의 emp테이블을 test 사용자가 scitt_emp라는 동의어로 사용 합니다. .


   


— 시노님을 이용한 쿼리 — 일반 테이블을 쿼리


SQL> SELECT empno, ename FROM scott_emp; SQL> SELECT empno, ename FROM scott.emp;


è 이 두 쿼리의 결과는 같습니다.


   


동의어 삭제 è SQL> DROP SYNONYM scott_emp


   


   


   

By haisins

오라클 DBA 박용석 입니다. haisins@gmail.com 으로 문의 주세요.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다