DB/SQL

OBJECT - SYNONYM

제주니어 2022. 9. 10. 19:15

SYNONYM

  • SYNONYM은 오라클에서 제공하는 객체로 데이터베이스 객체에 별칭을 생성한다.
  • SYNONYM을 사용하면 다른 사용자가 제공하는 객체를 참조할 때 간단하게 사용할 수 있다.

SYNONYM 생성

  • SYNONYM은 CREATE 구문을 사용해서 생성한다.

1) 비공개 SYNONYM

  • 객체에 대한 접근 권한을 부여받은 사용자가 정의한 동의어로 해당 사용자만 사용이 가능하다.
-- 사용자 계정에서 실행한다.
CREATE SYNONYM EMP FOR EMPLOYEE;

-- KH 계정으로 접속
CREATE SYNONYM EMP FOR EMPLOYEE;
-- 권한이 없어서 오류

-- 관리자 계정으로 KH 계정에 SYNONYM 생성 권한을 준다.
GRANT CREATE SYNONYM TO KH;

-- 다시 KH 계정으로 돌아오기
-- 비공개 SYNONYM 생성
CREATE SYNONYM EMP FOR EMPLOYEE;

SELECT * FROM EMPLOYEE;
SELECT * FROM EMP;

2) 공개 SYNONYM

  • 관리자 권한을 가진 사용자(DBA)가 정의한 동의어로 모든 사용자가 사용이 가능하다. (ex. DUAL)
-- 관리자 계정에서 실행한다.
CREATE PUBLIC SYNONYM DEPT FOR KH.DEPARTMENT;

-- 관리자 계정으로 접속
CREATE PUBLIC SYNONYM DEPT FOR KH.DEPARTMENT;

SELECT * FROM KH.DEPARTMENT;
SELECT * FROM DEPT;
-- 현재는 다른 계정으로는 접근이 불가능하다. 

-- PUBLIC이지만 객체에 대한 권한이 있어야 접근이 가능하다. 
-- 관리자 계정으로 접속해서 STUDY 계정에 권한주기 
GRANT SELECT ON KH.DEPARTMENT TO STUDY;

 

SYNONYM 사용

  • 테이블명 대신에 동의어를 통해서 테이블의 사용이 가능하다.
-- 동일한 결과를 수행한다.
SELECT * FROM EMPLOYEE;
SELECT * FROM EMP;

SELECT * FROM DEPARTMENT;
SELECT * FROM DEPT

 

SYNONYM 삭제

  • SYNONYM 삭제 시 DROP 구문을 사용해서 삭제한다.

'DB > SQL' 카테고리의 다른 글

OBJECT - FUNCTION  (0) 2022.09.12
OBJECT - PROCEDURE  (0) 2022.09.11
OBJECT - INDEX  (0) 2022.09.09
OBJECT - SEQUENCE  (0) 2022.09.08
OBJECT - VIEW  (1) 2022.09.07