[펌] Oracle 테이블 Synonym 설정

Synonym을 이용하여, 대용량 테이블 인덱스 작업시, 서비스 무정지에 도움 ??



From : http://icreater.springnote.com/pages/298776

Oracle 테이블 Synonym 설정


 

출처 : http://www.oracleclub.com/oracle/dic/OracleContent.jsp

 

시노님은 오라클 객체(테이블, 뷰, 시퀀스, 프로시저)에 대한 대체이름(Alias)를 말합니다.
Synonym은 실질적으로 그 자체가 Object가 아니라 Object에 대한 직접적인 참조 입니다.

 

Synonym을 사용하는 이유

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

 

예제

Synonyms을 사용하는 경우

  • 오브젝트의 실제 이름과 소유자 그리고 위치를 감춤으로써 database 보안을 개선하는데 사용 됩니다.
  • Object에의 Public Access를 제공 합니다.
  • Remote Database의 Table, View, Program Unit를 위해 투명성을 제공 합니다.
  • Database 사용자를 위해 SQL 문을 단순화 할 수 있습니다.

 

Synonym의 종류

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

 

시노님 생성 문법(Syntax)

PUBLIC : 모든 사용자가 접근 가능한 시노님을 생성 합니다. PUBLIC  시노님의 생성 및 삭제는 DBA만이 할 수 있습니다.

 

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

 1. 먼저 scott/tiger USER로 접속해서 test USER에게 emp테이블을 조작할 권한을 부여합니다.
 SQL>GRANT ALL ON  emp TO  test;
         권한이 부여되었습니다.

         test user에 대하여 scott의 emp테이블을 조작할 수 있는 권한을 부여합니다.
         권한이 있어야 select하거나 update, insert할수 있습니다.

 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;

 

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

   EMPNO ENAME
-------- ---------
    7369 SMITH
    7499 ALLEN
    7521 WARD
    7566 JONES
    7654 MARTIN
    7698 BLAKE
15 개의 행이 선택되었습니다.

동의어 삭제
SQL> DROP SYNONYM   sky_prd;
         시노님이 삭제되었습니다.

SQL> SELECT empno,  ename FROM  scott_emp;
         라인 1 에 오류:
         ORA-00942: 테이블 또는 뷰가 존재하지 않습니다


by 오서비네 | 2008/11/20 22:28 | Oracle | 트랙백(1)

Tracked from 오서비네 이글루 at 2008/11/20 23:37

제목 : PSM, SP에도 synonym 설정 가능, 당연.
[펌] Oracle 테이블 Synonym 설정 From : http://msdn.microsoft.com/ko-kr/library/ms187552.aspx 동의어는 스키마에 속하고 스키마의 다른 개체처럼 동의어 이름은 고유해야 합니다. 다음 데이터베이스 개체의 동의어를 만들 수 있습니다. 어셈블리(CLR) 저장 프로시저 어셈블리(CLR) 테이블 반환 함수 어셈블리(CLR) 스칼라 함수 어셈블리(CLR) 집......more

<< 이전 페이지     다음 페이지 >>