DB/오라클 SQL

[오라클/Oracle] 시노님 Synonym 개념 및 사용법

joah.k 2021. 10. 14. 16:31
728x90

 

 

# 시노님 Synonym 이란? 

 

시노님 Synonym은 기본적으로 '동의어'라는 뜻. 

 

오라클에서의 Synonym은 데이터베이스 객체가 가진 고유한 이름에 대한 동의어를 지어주는 것을 뜻한다. 

 

테이블 ALIAS와 비슷하지만 Synonym은 임시적인 별명이 아닌, 영속적인 별명을 부여하는 것이다. 

 

시노님은 다른 유저의 객체를 사용할 때 객체의 실제 이름을 감춤으로써 데이터베이스 보안성을 높일 수 있다는 장점이 있다. 

 

 

# 시노님 Synonym 사용 

 

- 시노님 생성

CREATE [PUBLIC / PRIVATE] SYNONYM 시노님명
FOR 대상객체명(=테이블명);

-- public / private 명시하지 않을 경우 private으로 시노님 생성

 

- 시노님 조회 

-- 현재 계정의 시노님 조회 
SELECT * FROM USER_SYNONYMS


-- 전체 시노님 조회 
SELECT * FROM ALL_SYNONYMS

 

- 시노님 사용권한 부여 

GRANT SELECT ON 시노님명 TO 계정명

 

- 시노님 삭제 

DROP [PUBLIC/PRIVATE] SYNONYM 시노님명

-- 시노님 제거가 안 될 경우는 권한이 없는 것

 

 

 

# 시노님 Synonym 사용 예제 

 

- DB를 다 오픈할 수 없을 때, 관리자 계정으로 뷰를 생성하여 게스트 계정이 뷰를 조회할 수 있도록.. 

 

1. 오라클 관리자 계정으로 로그인 (system)

2. 관리자 계정에서 게스트 계정 생성 
CREATE USER guest IDENTIFIED BY 12345;​


3. 생성한 게스트 계정에 권한 할당 

GRANT CREATE SESSION TO guest;
GRANT CREATE SYNONYM TO guest;


4. VIEW 생성 

5. 관리자 계정으로 게스트 계정에세 뷰 조회 권한 부여 

GRANT SELECT ON V_DB TO guest;​


6. 게스트 계정에 로그인 (guest / 12345) 후 뷰 네임에 접근하기 위해 시노님 객체 생성 

CREATE SYNONYM V_DB FOR system.V_DB;

    - 원래는 SELECT * FROM system.V_DB 으로 해야 접근이 가능하지만, 
      시노님 객체를 만들어 별칭을 할당했으므로 SELECT * FROM V_DB으로도 조회 가능  

728x90