코딩항해기

[DBMS/Oracle] 시노님 Synonym 본문

DBMS/Oracle

[DBMS/Oracle] 시노님 Synonym

miniBcake 2025. 2. 26. 09:15

 

 

데이터베이스 객체의 종류

테이블 데이터를 담고있는 객체
하나 이상의 테이블을 연결해 마치 테이블인 것처럼 사용하는 객체
인덱스 테이블에 있는 데이터를 빠르게 찾기 위한 객체
시노님 데이터베이스 객체에 대한 별칭을 부여한 객체
시퀀스 일련번호 채번을 할 때 사용되는 객체
함수 특정 연산을 하고 값을 반환하는 객체
프로시저 함수와 비슷하지만 값을 반환하지는 않는 객체
패키지 용도에 맞게 함수나 프로시저를 하나로 묶어놓은 객체

 

 

시노님 Synonym

시노님은 동의어라는 뜻으로 데이터베이스 객체는 각자 고유한 이름이 있는데 이 이름에 대한 별칭을 만드는 것이 시노님이다. 시노님에는 Public 시노님과 Private 시노님이 있다. Public 시노님은 데이터베이스의 모든 사용자가 접근할 수 있으며, Private 시노님은 특정 사용자에게만 참조되는 시노님이다.

 

시노님 생성

CREATE OR REPLACE [PUBLIC] SYNONYM [스키마명.]시노님명
FOR [스키마명.]객체명;

 

기본 시노님은 PRIVATE이며, PUBLIC을 기입하면 PUBLIC 시노님이 된다. PUBLIC 시노님은 DBA권한을 가진 사용자만 생성, 삭제가 가능하며 FOR절 이하에 테이블, 뷰, 프로시저, 함수, 패키지, 시퀀스 등이 올 수 있다.

 

시노님 삭제

DROP [PUBLIC] SYNONYM [스키마명.]시노님명;

 

PRIVATE 시노님을 제거할 때는 DROP SYNONYM이나 DROP ANY SYNONYM 권한이 있어야하며, PUBLIC 시노님의 경우 DROP PUBLIC SYNONYM 권한이 있어야한다.

 

시노님 사용이유

시노님은 데이터베이스 투명성을 제공하기 위해 사용하며 다른 사용자의 객체를 참조할 때 많이 사용한다. 일단 시노님을 생성해 놓으면 나중에 객체의 이름이 바뀌더라도 SQL문을 수정할 필요가 없다.

 

또한 원 객체를 숨길 수 있어 보안 측면에서 유리한 부분이 있다. 특히 PRIVATE 시노님은 다른 사용자가 참조할 때 소유자명.시노님의 형태로 사용하지만 PUBLIC 시노님은 이마저도 숨기고 시노님명만으로도 사용할 수 있어 보안 측면에서 유리하다.