- 내 계정에서 다른 계정의 특정 테이블을 내 계정에서 볼 때
Alias(별칭)를 정해놓고, 그 테이블을 참조할 때 Alias로 참조한다.
2. SYNONYM의 사용
- ORACLE0904 라는 계정에서 SCOTT 계정의 DEPT(부서테이블)을 보려 한다면,
통상적으로 이렇게 사용한다.
예) SELECT * FROM SCOTT.DEPT
- 하지만, 이렇게 사용한다면, 나중에 SQL문이 길어질 때, SQL문의 복잡함에 한 몫을 더한다는 점과
다른 스키마(여기서는 SCOTT)에 있는 오브젝트(여기서는 DEPT)의 위치를
노출시킨다는 점에서 보안성에도 문제가 있을 수 있다고 한다.
- 그래서 SCOTT.DEPT 라는 부분을 내 계정에서 간단히 줄여 별칭으로 사용하기 위함이 SYNONYM이다.
예를 들어, 별칭....이라...음. 나는 앞으로 SCOTT.DEPT를 'DEPT2'라는 별칭으로 사용하기 위해
내 계정에서 별칭을 정하는 작업을 다음과 같이 한다.
예) CREATE SYNONYM DEPT2 FOR SCOTT.DEPT
- 이렇게 별칭을 설정하여 놓고, SELECT * FROM DEPT2 라는 쿼리를 수행하면,
SELECT * FROM SCOTT.DEPT 쿼리 수행 결과와 결과가 같음을 확인할 수 있다.
쿼리문 길이 및 보안유지에도, 조금이나마 도움이 된다는 취지에서 SYNONYM을 사용한다.
* 만약 ORACLE0904 계정에서 SCOTT 계정의 테이블을 SELECT 할 권한이 없다면,
SCOTT 계정으로 접속하여, 다음과 같이 권한을 주고 작업하면 된다.
예) GRANT SELECT ON DEPT TO ORACLE0904
--> ORACLE0904 계정에게 DEPT 테이블의 SELECT 권한 부여
* 또한 나중에 이 별칭을 사용하지 않게 된다면, 해당 SYNONYM을 다음과 같이 없애줘 버리면 그만이다.
예) DROP SYNONYM DEPT2
'Web Programming > java-jsp' 카테고리의 다른 글
pom.xml 설정시 dependency 설정에서 scorp 종류와 설명. (0) | 2015.10.21 |
---|---|
[펌] eclipse 톰캣 환경 설정하기~ (0) | 2015.06.16 |
[Ajax] JSONP를 이용하여 Cross Domain 해결 (0) | 2015.04.27 |
암호화 MD5 vs SHA256 (0) | 2015.04.07 |
DWR 사용시 Session 값 얻기 (0) | 2015.04.07 |