본문 바로가기
IT/데이터베이스 (Database)

오라클(ORACLE) 시노님(Synonym) 생성,삭제,조회 및 권한부여

by 베베야 2020. 11. 2.
728x90
반응형

시노님(Synonym) 에 대한 설명입니다.

영문 뜻 그대로 동의어라는 뜻으로 Alias처럼 이름을 줄여주는 역할을 합니다. 오라클의 객체들에게도 본명이 아닌 다른 이름을 붙여서 할당한 이름으로 사용이 가능합니다. 보통 다른 유저의 테이블,뷰,프로시저 등을 참조할 때 사용됩니다.

오늘은 오라클에서 시노님(Synonym) 조회,생성,삭제 및 권한을 부여하는 방법까지 알아보겠습니다.

 

1. 시노님(Synonym) 조회하는 방법입니다.

시노님을 생성하기 앞서 현재 내 데이터베이스에 있는 시노님을 확인해 봅니다. 중복된 이름의 생성을 방지하기 위함 입니다.

SQL> SELECT * FROM ALL_SYNONYMS;

 

전체 리스트를 조회하여 구분이 어려울 경우에는 특정 유저의 시노임을 확인하기 위해서 조건절을 추가할 수도 있습니다.

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

예시> SELECT * FROM ALL_SYNONYMS WHERE='BEBE';

 

2. 시노님(Synonym) 을 생성하는 권한을 부여하는 방법입니다.

시노님의 권한 부여는 DBA 권한이 있는 sys 계정으로 진행 진행해야 합니다. sys 계정으로 오라클에 로그인을 진행합니다.

 

1) 시노님 생성 권한을 부여합니다.

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

시노님 생성권한 부여 쿼리는 다음과 같습니다.

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

예시> GRANT CREATE SYNONYM to 'BEBE1'

 

2) 테이블 접근권한을 부여합니다. 명령어는 아래와 같습니다.

여기서 나는 SELECT 권한만 주고 싶다면 ALL 대신 SELECT를 입력하시면 됩니다.

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

예시> GRANT ALL ON  BEBE2.table01 TO BEBE1;

 

3) 권한을 부여한 테이블에 접근이 가능한지 테스트를 진행해 봅니다.

권한부여를 완료했으니 사용자 BEBE1로 접속하여 사용자 BEBE2.table01로 접근이 가능한지 테스트를 진행합니다. 쿼리가 정상적으로 수행된다면 시노임 생성을 위한 준비가 완료되었습니다. (결과조회 시 오류가 나오면 다시한번 차근차근 실행 해 보시기 바랍니다)

SQL> SELECT * FROM BEBE2.table01;

 

3. 시노님(Synonym) 을 생성하는 방법 입니다.

아래의 명령어를 실행해 시노님을 생성합니다.PUBLIC은 모든 사용자가 접근이 가능하도록 설정해주는 것입니다. PUBLIC을 선언해주지 않으면 기본값으로 PRIVATE가 선언됩니다. (로그인한 유저 기준으로 생성됩니다.)

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

1) 사용자 BEBE1로 로그인하여 시노님 생성을 진행합니다.

SQL> CREATE SYNONYM BE2_table01 FOR BEBE2.table01;

 

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

SQL> SELECT * FROM BE2_table01;

 

4. 시노님(Synonym) 삭제하는 방법입니다.

생성했던 시노님 명을 아래와 같이 입력하시면 삭제가 됩니다.

SQL> DROP SYNONYM FROM BE2_table01;

여기까지 시노님(Synonym) 조회, 생성 ,삭제 및 권한부여 방법에 대해서 알아보았습니다.

728x90
반응형

댓글