#83. 오라클 동의어(Oracle Synonym)
동의어(Synonym)
테이블, 뷰, 시퀀스, 프로그램 유닛에 대한 별명이며 공용(public), 전용(private) 두가지 형태로 작성 가능하다. 공용 동의어는 DBA 권한을 가진 사용자만이 생성 가능하고 모든 계정에서 접근 가능 하며, 전용 동의어는 객체에 대한 접근 권한을 얻은 사용자가 작성하는 동의어로 해당 USER에서만 사용 가능 하다.
동의어는 Schema Object는 아니지만 스키마 오브젝트를 직접 참조한다.
예를 들어 SCOTT 계정에서 ONJ 계정의 STUDENT 테이블을 참조할 때 ONJ.STUDENT 라고 써주어야 하는데 이는 여러 번 사용되는 경우 불편하다. 이러한 경우 ONJ.STUDENT 에 대한 동의어를 만들어서 사용하면 편리하다.
[형식]
CREATE [PUBLIC] SYNONYM [schema.]동의어명
FOR [schema.]object;
PUBLIC : 공용 동의어 정의, 생략하면 전용 동의어 정의함
SQL> conn / as sysdba
연결되었습니다.
SQL> select * from emp;
select * from emp
*
1행에 오류:
ORA-00942: 테이블 또는 뷰가 존재하지 않습니다
SQL> select count(*) from scott.emp;
COUNT(*)
----------
9
SQL> create synonym emp for scott.emp;
동의어가 생성되었습니다.
SQL> select count(*) from emp;
COUNT(*)
----------
9
-- DUAL이 Public Synonum 임을 확인 하세요.
SQL> COL owner FORMAT A20
SQL> SET linesize 120
SQL> SELECT owner, synonym_name, table_owner from dba_synonyms
2 WHERE synonym_name = 'DUAL' ;
OWNER SYNONYM_NAME TABLE_OWNER
-------------------- ------------------------------ ----------------
PUBLIC DUAL SYS
SQL> drop synonym emp;
동의어가 삭제되었습니다.
동의어(Synonym)
테이블, 뷰, 시퀀스, 프로그램 유닛에 대한 별명이며 공용(public), 전용(private) 두가지 형태로 작성 가능하다. 공용 동의어는 DBA 권한을 가진 사용자만이 생성 가능하고 모든 계정에서 접근 가능 하며, 전용 동의어는 객체에 대한 접근 권한을 얻은 사용자가 작성하는 동의어로 해당 USER에서만 사용 가능 하다.
동의어는 Schema Object는 아니지만 스키마 오브젝트를 직접 참조한다.
예를 들어 SCOTT 계정에서 ONJ 계정의 STUDENT 테이블을 참조할 때 ONJ.STUDENT 라고 써주어야 하는데 이는 여러 번 사용되는 경우 불편하다. 이러한 경우 ONJ.STUDENT 에 대한 동의어를 만들어서 사용하면 편리하다.
[형식]
CREATE [PUBLIC] SYNONYM [schema.]동의어명
FOR [schema.]object;
PUBLIC : 공용 동의어 정의, 생략하면 전용 동의어 정의함
SQL> conn / as sysdba
연결되었습니다.
SQL> select * from emp;
select * from emp
*
1행에 오류:
ORA-00942: 테이블 또는 뷰가 존재하지 않습니다
SQL> select count(*) from scott.emp;
COUNT(*)
----------
9
SQL> create synonym emp for scott.emp;
동의어가 생성되었습니다.
SQL> select count(*) from emp;
COUNT(*)
----------
9
-- DUAL이 Public Synonum 임을 확인 하세요.
SQL> COL owner FORMAT A20
SQL> SET linesize 120
SQL> SELECT owner, synonym_name, table_owner from dba_synonyms
2 WHERE synonym_name = 'DUAL' ;
OWNER SYNONYM_NAME TABLE_OWNER
-------------------- ------------------------------ ----------------
PUBLIC DUAL SYS
SQL> drop synonym emp;
동의어가 삭제되었습니다.
댓글 없음:
댓글 쓰기