본문 바로가기
IT/ORACLE

오라클(ORACLE) 시노님(Synonym) 생성,삭제

by 베베야 2020. 10. 14.
728x90

시노님(Synonym) 이란?

- 동의어라는 뜻으로 Alias처럼 이름을 줄여주는 역할을 한다

- 보통 다른유저의 테이블,,프로시저 등을 참조할 때 사용된다

 

1. 시노님(Synonym) 조회

시노님을 생성하기 앞서 현재 내 데이터베이스에 있는 시노님을 확인해보자

(시노임 이름 중복을 방지하기 위함)

SQL > SELECT * FROM ALL_SYNONYMS;

 

특정 유저의 시노임을 확인하기 위해서는 조건절을 추가할 수도 있다

SQL > SELECT * FROM ALL_SYNONYMS WHERE=[유저명];

EX) SELECT * FROM ALL_SYNONYMS WHERE='BEBE';

 

2. 시노님(Synonym) 생성

권한 뷰여는 DBA 권한이 있는 sys 계정으로 진행하면 됩니다

 

2-1) 권한 부여하기

시노님을 생성하기위해서는 시노님 생성권한과 생성한기 위한 유저의 테이블에대한 접근 권한이 필요합니다

 

[시노님 생성권한 부여]

SQL> GRANT CREATE SYNONYM to [시노님 생성권한을 받을 유저명]

EX> GRANT CREATE SYNONYM to 'BEBE1'

 

[테이블 접근권한 부여]

SQL> GRANT [권한명] ON  [유저명.테이블명] TO [권한받을 유저];

EX> GRANT ALL ON  BEBE2.table01 TO BEBE1;

SELECT 권한만 주려면 ALL 대신 SELECT를 입력하면 됩니다

 

권한부여를 완료했으니 사용자 BEBE1로 접속하여

사용자 BEBE2.table01로 접근이 가능한지 테스트를 진행합니다

SQL> SELECT * FROM BEBE2.table01;

 

쿼리가 정상적으로 수행된다면 시노임 생성을 위한 준비가 완료되었습니다

(결과조회 시 오류가 나오면 다시한번 차근차근 실행 해 보시기 바랍니다)

 

2-2) 시노님(Synonym) 생성하기

SQL > CREATE [ PUBLIC ] SYNONYM [ 시노님 이름 ] FROM [ 객체 이름 ]

* PUBLIC은 모든 사용자가 접근이 가능하도록 설정해주는 것입니다.

* PUBLIC을 선언해주지 않으면 기본값으로 PRIVATE가 선언됩니다.

(로그인한 유저 기준으로 생성)

사용자 BEBE1로 로그인하여 시노님 생성

CREATE SYNONYM BE2_table01 FOR BEBE2.table01;

 

이제 BEBE1 사용자는 BEBE2.table01을 조회할 때 BE2_table01 을 사용하여 출력이 가능하게 되었습니다

(BE2_table01 = BEBE2.table01)

SQL > SELECT * FROM BE2_table01;

 

3. 시노님(Synonym) 삭제

SQL > DROP SYNONYM FROM BE2_table01;

 시노님(Synonym) 조회,생성,삭제 에 대해서 알아보았습니다.

 

반응형
그리드형

댓글