728x90
반응형
시노님(Synonym)이란?
'동의어'라는 뜻으로, 데이터베이스 객체는 각자 고유한 이름이 있는데
이 객체들에 대한 동의어를 만드는 것이 바로 시노님이며 이 또한 데이터베이스 객체에 속한다. (ex. 필명)
시노님에는 모든 사용자가 접근할 수 있는 Public시노님과 특정 사용자에게만 참조되는 Private시노님이 있다.
0. 시노님 사용 이유
1) 데이터베이스의 투명성을 제공하기 위해서 사용한다. 다른 사용자의 객체를 참조할 때 많이 사용한다.
2) 일단 시노님을 생성해 놓으면 나중에 이 시노님이 참조하고 있는 객체의 이름이 바뀌더라도 이전에 작성해 놨던 SQL문을 수정할 필요가 없다.
3) 시노님은 별칭이므로 원 객체를 숨길 수 있어 보안 측면에서 유리하다. PRIVATE 시노님은 다른 사용자가 참조할 때 소유자명.시노님명 형태로 사용하지만, PUBLIC은 소유자명까지 숨길 수 있다.
1. 시노님 생성
-- 시노님 생성
-- public을 생략하면 private 시노님이 만들어진다.
CREATE OR REPLACE [PUBLIC] SYNONYM [스키마명.]시노님명
FOR[스키마명.]객체명;
-- 입력
CREATE OR REPLACE SYNONYM syn_channel
FOR channels;
-- 결과
synonym SYN_CHANNEL이(가) 생성되었습니다.
-- 입력
SELECT COUNT(*)
FROM syn_channel;
-- 결과
COUNT(*)
----------
5
2. private 시노님 생성시 권한 부여
GRANT SELECT ON syn_channel TO HR;
GRANT SELECT ON syn_channel2 TO PUBLIC;
public 시노님은 소유자명을 붙이지 않아도 참조가 가능한데,
그 이유는 해당 시노님의 소유자가 시노님을 생성한 user가 아닌 public이 되기 때문이다.
생성된 시노님 정보는 private은 user_synonyms, public까지 보려면 all_synonyms를 참조한다.
3. 시노님 삭제
-- 시노님 삭제
DROP [PUBLIC] SYNONYM [스키마명.]시노님명;
DROP SYNONYM syn_channel;
DROP PUBLIC SYNONYM syn_channel2;
private 시노님을 제거할 때 DROP SYNONYM이나 DROP ANY SYNONYM 권한이 있어야한다.
public 시노님을 제거 할 때 DROP PUBLIC SYNONYM 권한이 있어야한다. (PUBLIC 키워드 명시 필수)
출처 및 참고 : thebook.io/006696/
728x90
반응형
'Data > Oracle' 카테고리의 다른 글
[Oracle] Table Space 사용량 확인 쿼리 (0) | 2021.02.24 |
---|---|
[Oracle] Index(인덱스) (0) | 2020.11.23 |
[Oracle] View(뷰) (0) | 2020.11.23 |
[Oracle] 테이블 변경 및 테이블 복사 / ALTER TABLE / CTAS (0) | 2020.09.16 |
[Oracle] 데이터 무결성을 보장하기 위한 제약 조건 (Constraints) (0) | 2020.09.13 |