SYNONYM은 오라클 객체(테이블,뷰,시퀀스,프로시저)에 대한 Alias를 말한다.
SYNONYM은 실질적으로 그차제가 Object가 아니라 Object에 대한 직접적인 참조
- 실무에서 다른 유저의 객체를 참고할 경우 SYNONYM을 생성해서 사용을 하면
추후에 참고하고 있는 오프젝트가 이름을 바꾸거나 이동을 할 경우 객체를 사용하는
SQL 구문을 모두 다시 고칠 필요가 없이 SYNONYM 만 다시 정의 하면 된다.
- 긴 이름을 단순하게, 짧게 만들어 쓸 수 있다.
- 객체를 참조하는 사용자의 오브젝트를 감출 수 있기 때문에 보안 유지가 된다.
SYNONYM을 사용하는 유저는 참조하고 있는 객체에 대한 사용자의 오브젝트
소유자,이름,서버이름을 몰라도 SYNONYM이름만 알면 사용할 수 있다.
SYNONYM 사용하는 경우
#오브젝트의 실제 이름과 소유자 그리고 위치를 감추고 DB보안을 개선하는데 사용
#오브젝트에 Public Access를 제공
#Remote DB의 table,view, program Init를 위해 투명성 제공
#DB SQL문 단순화
SYNONYM 두가지 종류가 있다.
- Private SYNONYM
특정사용사만 이용할 수있다.
- Publice SYNONYM
DB에 있는 모든 사용자가 공유 하여 사용할 수 있다.
SYNONYM 구문
CREATE [PUBLIC] SYNONYM synonm_name
FOR object_name
- Public : 모든 사용자가 접근 가능한 SYNONYM을 생성
Publice SYNONYM 은 DBA만 생성할 수 있다.
% scott USER의 emp 테이블을 test USER가 사용하는 예제
1. 먼저 scott/tiger USER로 접속해서 test USER에게 emp 테이블의 조작할 권한을 부여한다
GRANT ALL ON emp TO test;
권한이 부여 되었습니다.
test user에 대하여 scott의 emp테이블을 조작할 수 있는 권한을 부여한다.
권한이 있어야 select 하거나 update, insert 할 수 있다.
2. test USER로 접속해 동의어를 생성한다
connect test/test
GREATE SYNONYM scott_emp FOR scott.emp;
시노임이 생성 됨
scott USER가 소유하고 있는 emp테이블에 대해 scott_emp라는 일반 시노임을 생성
scott 사용자의 emp 테이블을 test 사용자가 scott_emp라는 동의러로 사용한다.
-- SYNONYM을 이용한 쿼리
select empno ,ename from scott_emp;
-- 일반 테이블 쿼리
select empno ,ename from scott.emp;
두 쿼리 결과는 같다.
동의어 삭제
DROP SYNONM scott_emp;
시노임이 삭제 되었습니다.
select empno ,ename from scott_emp;
라인 1에 오류:
ORA-00942: 테이블 또는 뷰가 존재 하지 않는다.
http://jhbench.tistory.com/200 블로그 참조
'경험치바(Experience Opint Bar)' 카테고리의 다른 글
ORACLE JOB 조회, 등록, 삭제, 실행, 변경 (0) | 2017.02.02 |
---|---|
오라클 테이블 권한주기(oracle table grant) (0) | 2016.07.08 |
telnet 으로 포트 통신 상태 확인 (0) | 2016.06.07 |
리눅스 표준 입출력 기호 쉘 스크립트 사용시 (shell Script -in,output) (0) | 2016.05.10 |
[자바] 설치된 자바(java) bit 확인 방법 32bit/64bit (0) | 2016.04.05 |