[DB] SQL 시노님(Synonym), 권한(Grant) 생성 방법 및 쉬운 설명

 

최근 인터페이스를 이용해 데이터를 서로 주고 받는 각기 다른 웹사이트의 DB를 합치는 DB 일원화 업무로 인하여 DB에서 작업해야 될 일이 많아졌다.

테이블이나 function을 생성해야 하는데 권한과 시노님 문제 때문에 헷갈리는게 많아 정리를 하고자 한다.

 

 

 

예를 들어 스키마1과 스키마2 가 존재한다.

 

스키마1에서 생성한 TABLE 및 FUNCTION을 스키마2에게 SYNONYM 및 GRANT를 생성 및 부여하고 싶다.

 

작업순서

1. 권한 부여

 - GRANT는 TABLE 및 FUNCTION을 생성'한' 스키마 워크시트에서 작업

 

2. Synonym 생성

 - SYNONYM은 TABLE 및 FUNCTION을 생성'할' 스키마 워크시트에서 작업 

 

EX)

스키마1에서 TABLE 및 FUNCTION을 생성했다.

--> 스키마1에서 GRANT 작업을 실행.

 

스키마2에게 스키마1에서 생성한 TABLE 및 FUNCTION의 SYNONYM을 부여하고 싶다

--> 스키마2에서 SYNONYM작업을 실행한다.

 

 

 

* 아래 예시의 '[ --- ]'를 지우고 작업을 진행 한다.

 

TABLE

GRANT SELECT, INSERT, DELETE, UPDATE ON [테이블 이름] TO [권한을 부여할 스키마];
CREATE PUBLIC SYNONYM [줄여서 만들 이름] FOR [테이블을 생성한 스키마].[테이블 이름];

* CREATE 뒤에 붙은 PUBLIC은 사용하려는 목적에 맞춰 변경해준다.(PUBLIC은 모든 사용자가 접근 가능)

* 기본값 PRIVATE

 

 

 

 

FUNCTION

GRANT EXECUTE ON [FUNCTION 이름] TO [권한을 줄 스키마];
GRANT SYNONYM [FUNCTION이름] FOR [FUNCTION을 생성한 스키마].[FUNCTION 이름];