시노님(SYNONYM) 이란?
오라클(Oracle) 객체(테이블, 뷰, 시퀀스, 프로시저)에 대한 대체 이름을 의미한다.
실제로 그 객체를 사용하는게 아닌 객체를 직접적으로 참조하여 사용한다.
보통 다른 유저(계정)의 객체를 참조할 때 사용한다.
본인은 DBA 가 아니므로 틀릴 수 있습니다.
직접적으로 겪어본 바 보통 보안상 이유로 시노님을 사용하는걸로 보인다.
특정 2개의 계정이 있다. 하나는 관리자 계정 또 하나는 특정 유저의 계정이다.
관리자 계정은 수정, 삭제 등 모든 권한이 존재한다.
모든 사람이 관리자 계정을 사용하게 되면 문제가 발생할 수 있다.
이러한 문제로 관리자 계정을 사용하지 않고 특정 유저의 계정을 하나 만들어
관리자 계정의 테이블에 접근이 가능하도록 시노님(특정 유저의 테이블 참조)을 준다.
시노님(SYNONYM) 조회 방법
데이터베이스 내 시노님을 조회하는 방법은 아래와 같다.
SQL> SELECT * FROM ALL_SYNONYMS;
시노님(SYNONYM) 권한 부여
시노님을 생성하기 위해선 시노님 생성권한을 가지고 있는 계정과 시노님을 생성할 테이블의 접근 권한이 필요합니다.
// 시노님 생성권한을 받을 계정에게 권한을 준다.
SQL> GRANT CREATE SYNONYM to '시노님 생성권한을 받을 유저명'
ex) GRANT CREATE SYNONYM to 'obo1'
// 시노님을 생성할 테이블의 접근 권한을 준다.
SQL> GRANT '권한명(ALL, SELECT 등)' ON '유저명.테이블명' TO '권한받을 유저'
ex) GRANT ALL ON obo2.table1 TO obo1
시노님(SYNONYM) 생성 방법
CREATE [ PUBLIC ] SYNONYM [ 시노님 이름 ]
FOR [ 객체 이름 ]
여기서 PUBLIC 은 모든 사용자가 접근할 수 있도록 설정한다.
PUBLIC 을 선언하지 않으면 기본적으로 PRIVATE 이 선언되며 접근에 제한된다.