주니어 기초 코딩공부/Database 기초
19장 데이터베이스 동의어 개념 (SQL 오라클)
jju_developer
2022. 12. 21. 21:19
728x90
✔ 동의어 SYNONYM?
SYNONYM
쉽게 말해서 ALIAS 같이 이름을 줄여주는 역할을 합니다.
시노님(Synonym)은 테이블의 이름을 설정해 주는 것이다.
보통 다른 유저의 객체(테이블, 뷰, 프로시저, 함수, 패키지, 시퀀스 등)를 참조할 때 많이 사용한다.
실제로 SYNONYM을 이용하는 이유는 다른 유저의 객체를 사용할 때
유저의 이름과 객체의 실제 이름을 사용하는데,
그 두 개를 감춤으로써 데이터베이스의 보안을 개선하기 위해 사용된다.
<구문>
CREATE [ PUBLIC ] SYNONYM [ 시노님 이름 ]
FOR [ 객체 이름 ]
* PUBLIC은 모든 사용자가 접근이 가능하도록 설정해주는 것입니다.
* PUBLIC을 선언해주지 않으면 기본값으로 PRIVATE가 선언됩니다.
우선 예제에 앞서서 시노님을 사용하는 상세이유에 대해 알아보겠습니다.
시스템 계정과 스콧 계정이 있다고 가정할 때
시스템 계정에서 만든 SYSTBLE 테이블은 SCOTT이 접근할 수 없습니다.
그럴 때에는 시스템 계정이 가지고 있는 테이블에대해 스콧계정에서 접근이 가능하도록 권한을 주어야 합니다.
이때,
해당되는 SYSTBLE 이라는 테이블 권한을 줄 때
조작 권한까지 주고 싶으면 ALL을 붙이고 아니다 조회 권한만 주고자 한다
그러면 SELECT만 하시면 됩니다.
GRANT ALL ON SYSTBL TO SCOTT;
-- GRANT SELECT ON SYSTBL TO SCOTT;
✔ 동의어 SYNONYM 를 사용하기 위한 권한 부여 예제
1. 시스템에서 생성
2. 스콧계정에서는 볼 수 없습니다.
3. 시스템 계정에서 객체 권한을 부여해주어야 합니다.
4. 스콧 계정에서 다시 객체 권한을 부여받은 후 쳐보면 테이블이 보입니다.
✔ 동의어 SYNONYM 삭제
CREATE SYNONYM S1 FOR SYSTEM.SYSTBL;
삭제방법
DROP SYNONYM S1;
그럼 지금까지
SQL 동의어에 대한 설명이었습니다.
감사합니다.
728x90