시노님(Synonym) : 동의어
/*
* 개정 이력
* 2017.11.28 첫번째 줄 오타 수정('동의오'->'동의어')
*/
데이터베이스 객체는 각자 고유한 이름이 있다. 이 객체들에 대한 동의어를 만드는 것이 시노님이다.
가령, 내가 이 글을 작성하는데 나를 아는 사람들은 제외한, 나를 모르는 사람들은 나를 '논리코더'로 알고있을 것이다.
이때, 내 실명이 객체의 이름이고, '논리코더'는 시노님이라고 볼 수 있다.
시노님을 사용하는 이유
1. 데이터베이스의 투명성을 제공한다.
2. 시노님이 참조하고있는 객체의 이름이 바뀌어도 시노님을 이용한 SQL문은 수정될 필요가 없다.
3. 시노님의 원 객체를 숨길 수 있어 보안에 유리하다. 이 부분은 뷰(VIEW)와 유사한 특징이다.
시노님 생성
1 2 | CREATE OR REPLACE [PUBLIC] SYNONYM [SYNONYM_NAME] FOR [OBJECT_NAME] | cs |
[PUBLIC] 에는 PUBLIC 혹은 PRIVATE 가 들어가며, 생략시 기본값은 PRIVATE이다. PUBLIC 시노님은 DBA 권한을 가진 사용자만 생성/삭제가 가능하다.
[SYNONYM_NAME] 에는 시노님명이, [OBJECT_NAME] 에는 객체명이 들어가는데, 객체에는 테이블, 뷰, 프로시저, 함수, 패키지, 시퀀스가 올 수 있다.
1 2 3 | -- 시노님 생성 CREATE OR REPLACE PUBLIC SYNONYM SYNONYM_TEST FOR TEST_TABLE; | cs |
시노님 제거
1 | DROP [PUBLIC] SYNONYM [SYNONYM_NAME] | cs |
생성된 시노님은 DROP문을 이용해 제거할 수 있다.
PRIVATE 시노님을 제거하기 위해서는 DROP SYNONYM 이나 DROP ANDY SYNONYM 권한이 있어야하며,
PUBLIC 시노님을 제거하기 위해서는 DROP PUBLIC SYNONYM 권한이 있어야한다.
[PUBLIC] 위치에 PUBLIC이 표기되지 않을 경우, 기본값인 PRIVATE 시노님이 제거가 되므로 유의한다.
1 2 | -- 시노님 제거 DROP SYNONYM SYNONYM_TEST; | cs |
'📃 DATABASE > ORACLE' 카테고리의 다른 글
[SQL] 분석 함수 (0) | 2018.01.15 |
---|---|
[SQL] WITH절과 순환 서브쿼리 (0) | 2018.01.15 |
[SQL] 계층형 쿼리 (0) | 2018.01.09 |
[SQL] 내부조인과 외부조인 (0) | 2018.01.08 |
[SQL] 집합 연산자 (0) | 2018.01.04 |