DB SYNONYM
0. 개요
데이터베이스 객체에 대한 소유권은 해당 객체를 생성한 사용자가 갖는다= 다른 사용자가 그 객체에 접근하려면 접근권한을 부여받아야 한다
= 다른 사용자가 해당 객체를 조회하려면 소유자의 ID를 지정해야함
↔ 객체를 조회할 때마다 ID를 지정하는 것은 귀찮은 일
∴ 하나의 객체에 다른 이름을 지정할 때 사용
SYNONYM은 데이터베이스 전체에서 사용할 수 있는 객체
1. 정의
오라클 객체인 테이블, 뷰, 시퀀스, 프로시저에 대한 별칭객체에 대한 직접적인 참조를 의미함
2. 사용하는 이유
DB 투명성 제공다른 사용자의 객체를 참조하기 위해
코딩의 단순화
3. 종류
1) private synonym: 특정 사용자만 사용 가능2) public synonym: 공용 사용자 그룹, 모든 사용자가 사용 가능
4. 사용법
0) scott계정 사용자에게 synonym 권한 부여- 처음부터 scott 계정이 권한을 갖고 있지 않음
- system 계정이 권한을 부여해줘야 scott 계정도 synonym 사용가능
- 권한 부여: grant create synonym to scott
※ other 계정은 생성때부터 synonym권한이 있음 ( 1) 참조 )
1) scott계정으로 접속해서 other계정에게 MA_MI_DEPT테이블의 조작 권한을 부여
- grant all on MA_MI_DEPT to other
: scott 계정의 MA_MI_DEPT 테이블의 모든 권한을 other 계정에게 부여
2) other 계정으로 접속해서 synonym 생성
- create synonym MA_MI_DEPT for SCOTT.MA_MI_DEPT
: other계정이 scott계정의 MA_MI_DEPT 테이블을 MA_MI_DEPT로 이용하겠다고 선언
2-1) 일반 쿼리, synonym을 이용한 쿼리
- 일반 : SELECT * FROM SCOTT.MA_MI_DEPT ;
- synonym이용: SELECT * FROM MA_MI_DEPT ;
3) synonym 삭제
- drop synonym scott_emp
: synonym을 삭제했기 때문에 synonym을 이용한 쿼리는 사용 불가
(일반 쿼리는 사용 가능)
4) 권한 해제
- revoke all on MA_MI_DEPT from OTHER
: 권한을 해제 했기 때문에 일반 쿼리조차 사용 불가