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 |