Oracle - SYNONYM(동의어)

SYNONYM(동의어)

다른 DB가 가진 객체에 대한 별명 혹은 줄임말

여러 사용자가 테이블을 고유할 경우

다른 사용자가 테이블에 접근할 경우 '사용자명.테이블명'으로 표현하는데

이때 동의어를 사용하면 간단하게 사용할 수 있음

 

*동의어 구분

- 비공개 동의어 : 객체에 대한 접근 권한을 부여받은 사용자가 정의한 동의어로 해당 사용자만 사용가능

- 공개 동의어 : 모든 권한을 주는 사용자가 정의한 동의어는 모든 사용자가 사용 가능

 

 

비공개 동의어

비공개 동의어 - 해당 사용자 계정에서 만드는 법

[표현식]
    CREATE SYNONYM 별명(줄임말)
    FOR 사용자명.객체명;

 

1. SELECT 권한 부여

만약 SELECT의 권한을 부여하지않을상태에서 조회를하게되면 권한이없다는 에러메세지 출력됨

-- 무조건 권한작업은 SYS계정으로 진행해야함 필수!!
GRANT SELECT
ON kh.EMPLOYEE TO SAMPLE;

2. SYNONYM 생성

-- kh.EMPLOYEE 테이블의 별명을 EMP로 지정
CREATE SYNONYM EMP
FOR kh.EMPLOYEE;

 

3. SYNONYM 권한부여

이것도 무조건 SYS계정으로 권한부여

GRANT CREATE SYNONYM TO SAMPLE;

4.EMP 동의어 조회

SELECT *
FROM EMP;

 

 

공개 동의어

공개 동의어는 생성할때 SYS 계정으로 실행하여야한다.

 

1. 공개 동의어 만들기

-- 공개 동의어 만들기 (SYS 계정으로 실행)
CREATE PUBLIC SYNONYM DEPT
FOR kh.EMPLOYEE;

 

2. 공개 동의어 조회

-- SYS 계정으로 공개 동의어로 조회
SELECT *
  FROM DEPT;

 

 

동의어 삭제

비공개 동의어는 동의어 생성한 계정으로 삭제진행하고

공개 동의어는 SYS계정으로 삭제를 진행하면된다.

DROP SYNONYM EMP;

SELECT * 
  FROM EMP;

-- 공개 동의어 삭제는 SYS 계정으로
DROP PUBLIC SYNONYM DEPT;

SELECT *
  FROM DEPT;

 

'프로그래밍 > Database(Oracle)' 카테고리의 다른 글

Oracle - PL/SQL  (0) 2021.07.07
Oracle - INDEX  (0) 2021.07.07
Oracle - DCL(GRANT, REVOKE)  (0) 2021.07.06
Oracle - 시퀀스(sequence)  (0) 2021.07.06
Oracle - view  (0) 2021.07.06
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유