1. 시노님이란?
: 시노님은 오라클 객체(테이블, 뷰, 시퀀스, 프로시저)에 대한 대체이름(Alias)를 말하며, 실질적으로 그 자체가 객체가 아니라 객체에 대한 직접적인 참조 이다.
2. 시노님을 사용하는 이유
- 데이터베이스의 투명성을 제공하기 위해 사용. 시노님은 다른 유저의 객체를 참조할 때 많이 사용을 한다.
- 만약에 실무에서 다른 유저의 객체를 참조할 경우가 있을 때 시노님을 생성해서 사용을 하면은 추후에 참조하고 있는 오프젝트가 이름을 바꾸거나 이동할 경우 객체를 사용하는 SQL문을 모두 다시 고치는 것이 아니라 시노님만 다시 정의하면 되기 때문에 매우 편리 하다.
- 객체의 긴 이름을 사용하기 편한 짧은 이름으로 해서 SQL코딩을 단순화 시킬 수 있다.
- 또한 객체를 참조하는 사용자의 오브젝트를 감추 수 있기 때문에 이에 대한 보안을 유지할 수 있다. 시노님을 사용하는 유저는 참조하고 있는 객체를에 대한 소유자, 이름, 서버이름을 모르고 시노님 이름만 알아도 사용 할 수 있다.
3. 시노님의 두 가지 종류
- Private Synonym : 전용 시노님은 특정 사용자만 이용할수 있다.
- Public Synonym : 공용 시노님은 공용 사용자 그룹이 소유하며 그 데이터베이스에 있는 모든 사용자가 공유 한다
4. 시노님 문법
- - PUBLIC : 모든 사용자가 접근 가능한 시노님을 생성 한다.
시노님 예제
scott USER의 emp테이블을 test USER가 사용 하는 예제.
-- ① 먼저 scott/tiger USER로 접속해서 test USER에게 -- emp 테이블을 조작할 권한을 부여합니다. SQL> GRANT ALL ON emp TO test; -- ② test USER로 접속해 동의어를 생성합니다. SQL> CONNECT test/test SQL> CREATE SYNONYM scott_emp FOR scott.emp ; -- scott USER가 소유하고 있는 emp 테이블에 대해 scott_emp라는 일반 시노님을 생성했다. -- scott 사용자의 emp테이블을 test 사용자가 scott_emp라는 동의어로 사용 합니다. -- ③ 시노님을 이용한 쿼리 SQL> SELECT empno, ename FROM scott_emp; -- 일반 테이블을 쿼리 SQL> SELECT empno, ename FROM scott.emp; 이 두 쿼리의 결과는 같다. EMPNO ENAME -------- --------- 7369 SMITH 7499 ALLEN ... -- ④ 동의어 삭제 SQL> DROP SYNONYM scott_emp; -- 시노님을 이용한 조회 SQL> SELECT empno, ename FROM scott_emp; 라인 1 에 오류: ORA-00942: 테이블 또는 뷰가 존재하지 않습니다
참고>> http://oracleclub.com/lecture/1038
'Dev. 데이터베이스 > Oracle 관련' 카테고리의 다른 글
[Oracle 팁] 오라클 정보 조회/확인 관련 쿼리 및 테이블 (0) | 2013.12.09 |
---|---|
[오라클 SQL] 우편번호(주소) 대용량 데이터 sqlldr 이용하여 넣기(csv파일 이용) (0) | 2012.08.29 |
[오라클 SQL 강좌] 시퀀스 (Sequence) (0) | 2012.08.28 |
데이터베이스 백업(Backup) 및 복구(Recovery) - 전체, 계정(스키마), 테이블 (0) | 2012.08.28 |
[오라클 SQL 강좌] 뷰 (View) (0) | 2012.08.28 |